yiisoft / yii2-redis

Yii 2 Redis extension.
http://www.yiiframework.com
BSD 3-Clause "New" or "Revised" License
451 stars 184 forks source link

This error is reported when the queue performs for more than 20 minutes #238

Closed huangli58 closed 2 years ago

huangli58 commented 2 years ago

Exception 'yii\redis\SocketException' with message 'Failed to read from socket. Redis command was: ZREM cst-group-dataImportQueue2.reserved 99'

in /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-redis/src/Connection.php:778

Stack trace:

0 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-redis/src/Connection.php(763): yii\redis\Connection->parseResponse(Array, '*3\r\n$4\r\nZREM\r\n$...')

1 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-redis/src/Connection.php(746): yii\redis\Connection->sendCommandInternal('*3\r\n$4\r\nZREM\r\n$...', Array)

2 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-redis/src/Connection.php(683): yii\redis\Connection->executeCommand('ZREM', Array)

3 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-queue/src/drivers/redis/Queue.php(180): yii\redis\Connection->__call('zrem', Array)

4 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-queue/src/drivers/redis/Queue.php(62): yii\queue\redis\Queue->delete('99')

5 [internal function]: yii\queue\redis\Queue->yii\queue\redis{closure}(Object(Closure))

6 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): call_user_func(Object(Closure), Object(Closure))

7 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-queue/src/drivers/redis/Queue.php(68): yii\queue\cli\Queue->runWorker(Object(Closure))

8 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2-queue/src/drivers/redis/Command.php(76): yii\queue\redis\Queue->run(true, 3)

9 [internal function]: yii\queue\redis\Command->actionListen(3)

10 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)

11 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)

12 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/console/Controller.php(164): yii\base\Controller->runAction('listen', Array)

13 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('listen', Array)

14 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('data-import-que...', Array)

15 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('data-import-que...', Array)

16 /mnt/hgfs/www/cst-group-new/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))

17 /mnt/hgfs/www/cst-group-new/yii(23): yii\base\Application->run()

18 {main}

samdark commented 2 years ago

There could be two reasons for it:

  1. The socket itself "expires". In this case https://github.com/yiisoft/yii2-redis/blob/master/src/Connection.php#L342 may help.
  2. You're out of memory because too many connections occupied at the same time.
samdark commented 2 years ago

Since there are no further details, we can't fix the problem.