Laravel在同一队列上的多台机器上排队侦听器

时间:2017-05-29 08:13:18

标签: php laravel laravel-queue

我目前有一个多服务器Laravel设置。我有多个负载均衡的服务器并共享数据库。

每个实例也运行一个队列侦听器。我希望能够派遣两种类型的工作:

  1. 仅运行一次的作业(例如发送电子邮件,更新模型等)
  2. 在所有队列侦听器上运行的作业(例如,从文件系统中删除文件)
  3. 我认为第一个实现起来非常简单,但不确定如何实现第二个。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使队列侦听器或工作器处理特定队列。例如,运行队列侦听器或worker来处理emails队列。

php artisan queue:listen --queue=emails
php artisan queue:work --queue=emails

您现在可以将作业分派到此队列

dispatch((new Job)->onQueue('emails'));

这可以帮助您设置多个侦听器/工作程序,以根据您的要求处理不同的队列。