我的环境是
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实现自定义连接,但是结果是它不起作用,如何使它起作用?
答案 0 :(得分:0)
尝试一下
$delay = Carbon::parse($memberCoupon->started_at)->diffInSeconds(Carbon::now());
$job = new GrantCoupon($memberCoupon);
$this->dispatch($job)->delay($delay)->onConnection('redis')->onQueue('coupons');
您的队列作业将在分派时生效,包括延迟。