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