我的环境是
PHP7.0
Laravel 5.4
我想在作业队列上实现多个连接,以下是我的代码:
$delay = Carbon::parse($memberCoupon->started_at)->diffInSeconds(Carbon::now());
$job = (new GrantCoupon($memberCoupon, $delay))
->onConnection('redis')->onQueue('coupons');
$this->dispatch($job);
和我的.env
QUEUE_DRIVER=sync
我的queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => '{default}',
'retry_after' => 90,
]
如果我使用上述方法onConnection('redis')->onQueue('coupons')
,我将立即收到一条消息(类GrantCoupon
(,但delay
不起作用。
我已将QUEUE_DRIVER
设置为sync
,我只想通过onConnect实现自定义连接,但结果是它不起作用,我怎样才能让它工作?
试试这个
$delay = Carbon::parse($memberCoupon->started_at)->diffInSeconds(Carbon::now());
$job = new GrantCoupon($memberCoupon);
$this->dispatch($job)->delay($delay)->onConnection('redis')->onQueue('coupons');
您的队列作业将在调度时生效,包括延迟。