Yii2 队列 TTR 属性不适用



我有以下队列配置:

'queue' => [
'class' => yiiqueuedbQueue::class,
'db' => 'db',
'tableName' => '{{%queue}}', 
'channel' => 'default',
'mutex' => yiimutexMysqlMutex::class,
'ttr' => 14400,
],

我编写了在控制台中输出当前时间的简单作业。 使用 yii\queue\JobInterface; 使用 yii\queue\Queue;

class DummyTimer implements JobInterface
{
public function run()
{
$strtime = time();
while($strtime + (4*60*60) > time())
echo date('H:i:s') . "rn";
}
public function execute($queue)
{
$this->run();
}
}

它只运行 300 秒,然后在终端中的下一个输出中被杀死:

2020-05-27 23:29:51 [8] app\modules\queue\DummyTimer (尝试: 1, pid: 7637( - 错误 Symfony\Component\Process\Exception\ProcessTimedOutException: 进程 "'/usr/bin/php7.2' 'yii' 'queue/exec' '8' '300' '1' '7637' "--颜色=1" "--详细=1"超过了 300 秒的超时。

那么如何延长作业的最长生存期呢?

原始解决方案应该工作正常:

'queue' => [
'class' => yiiqueuedbQueue::class,
'db' => 'db',
'tableName' => '{{%queue}}', 
'channel' => 'default',
'mutex' => yiimutexMysqlMutex::class,
'ttr' => 14400,
],

偶然发现了同样的问题,似乎队列配置中的 ttr 不起作用。但是我忘记做的是在更改配置后重新启动队列过程。如果使用新配置正确重新加载队列,则配置更改工作正常。

最新更新