Laravel 主管:如何按顺序处理某些作业?

Laravel Supervisor: How to process certains jobs in sequence?

我的应用程序中有三个作业:

发送电子邮件、流程订单、发送通知

这是我的主管配置:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /app/artisan queue:work --queue=email,order,notify --tries=5 --sleep=3
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
stdout_logfile=/app/worker.log
stopwaitsecs=3600

我如何告诉主管按顺序处理 ProcessOrder(订单队列)而不是同时处理多个?如果我的队列中有 5 个工作,因为我将 numprocs 设置为 8 个主管尝试同时处理所有这些工作,但我希望它一个接一个地处理 ProcessOrder

我建议您创建一个额外的主管进程,其中 numprocs=1 您只处理您的订单队列。类似地更新您现有的流程以处理其他两个队列。

这样您就不会有多个子流程来处理您的订单队列。因此将一个接一个地处理任务,而所有其他队列将有多个进程来处理它们。