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

时间:2018-08-23 11:04:00

标签: laravel queue

我的环境是
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实现自定义连接,但是结果是它不起作用,如何使它起作用?

1 个答案:

答案 0 :(得分:0)

尝试一下

$delay = Carbon::parse($memberCoupon->started_at)->diffInSeconds(Carbon::now());
$job = new GrantCoupon($memberCoupon);
$this->dispatch($job)->delay($delay)->onConnection('redis')->onQueue('coupons');

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