php - 同一队列中多台机器上的 Laravel 队列监听器

标签 php laravel laravel-queue

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

每个实例还运行一个队列监听器。我希望能够分派(dispatch)两种类型的工作:

  1. 只运行一次的作业(例如发送电子邮件、更新模型等)
  2. 在所有队列监听器上运行的作业(例如从文件系统中删除文件)

我认为第一个实现起来非常简单,但不确定如何着手实现第二个。有什么想法吗?

最佳答案

您可以让队列监听器或工作人员处理特定队列。例如,运行队列监听器或工作程序来处理 emails 队列。

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

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

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

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

关于php - 同一队列中多台机器上的 Laravel 队列监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44237608/

相关文章:

php - 如果文本增加了 fpdf php 中单元格的宽度,则更改文本行?

php - 使用 Laravel 5 热切加载多个索引关系

php - Laravel - 如何清除数组语言的缓存

laravel - 查看一秒内处理了多少个Job?

php - Laravel 一旦失败就删除作业

php - 在 PHP 电子邮件中使用 HTML 代码

php - 检测和查询特定语言

php - 初学者关于在 PHP 时间变量中添加什么的问题

php - Laravel hasManyThrough 对中间模型有约束

javascript - Laravel Vue.js - 包含 vue-router 的最简单方法?