yiisoft/yii2-queue

Default TTR from config seems not to be apllied

gb5256 opened this issue · 4 comments

What steps will reproduce the problem?

I am using this config:

'components' => [
   ...
    'queue' => [
        'class' => '\yii\queue\db\Queue::class', 
        'as log' => \yii\queue\LogBehavior::class,
        'db' => 'db', 
        'tableName' => '{{%queue}}', 
        'channel' => 'default',
        'mutex' => \yii\mutex\MysqlMutex::class,
        'ttr' => 600,
    ],

What's expected?

I expect that if I create a job without mentioning a specific ttr in the job, that it then takes the default value.

What do you get instead?

It always uses 300 s (as it is defined inside yii\queue\Queue : public $ttr = 300;

Additional info

Q A
Yii version 2.0.48.1
PHP version 8.0
Operating system Ubuntu 18.04 LTS

What version of yii2-queue are you using?

gb5256 commented

@s1lver : I am using yii-queue version 2.3.5

@gb5256 can you share the code you use to push job to redis queue?
redis driver will load ttr from job by default

yuuues commented

Hi!!

As a workaround, we've found that when calling to the queue and making a push

Yii::$app->yourqueue->push(new YourWorker([]));

You can call ttr function to edit manually the TTR applied. So your call would be like

Yii::$app->yourqueue->ttr($yourTtrInSeconds)->push(new YourWorker([]));