Laravel使用不同的队列连接来调度作业

时间:2016-01-08 11:25:11

标签: php laravel laravel-5 queue laravel-5.1

我正在使用 laravel 5.1 ,我正在使用调度方法将作业推送到队列中。 但是有两种工作,我已经创建了两个工作,并在 sqs 中有两个队列。 我该如何实现这个目标?

3 个答案:

答案 0 :(得分:10)

要指定队列,您需要在作业对象上调用 onQueue()方法,例如:

$job = (new SendReminderEmail($user))->onQueue('emails');
$this->dispatch($job);

如果要将作业发送到默认连接以外的连接,则需要手动获取连接并在那里发送作业:

$connection = Queue::connection('connection_name');
$connection->pushOn('queue_name', $job)

答案 1 :(得分:6)

这对我有用。

//code to be used in the controller (taken from @jedrzej.kurylo above)
$job = (new SendReminderEmail($user))->onQueue('emails');
$this->dispatch($job);

我认为这会将作业发送到名为"电子邮件"的队列。 执行发送电子邮件的工作'队列:

//Run this command in a new terminal window
php artisan queue:listen --queue=emails

答案 2 :(得分:2)

我建议:

app('queue')->connection('connection_name')->pushOn('queue_name', $job);

从这里开始:In Laravel how to create a queue object and set their connection without Facade