如何设置作业队列的多个连接?



我的环境是
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');

您的队列作业将在调度时生效,包括延迟。

最新更新