首页 > 解决方案 > Laravel 异步工作者

问题描述

我正在尝试将 Laravel 5.7 队列设置为几乎同时运行。异步。我通过 Google/Stack Overflow 得到了很多答案,但是他们都只是说“将驱动程序设置为数据库”。那是行不通的。我们设置了数据库驱动程序,并有一个作为守护进程运行的工作程序。只有一个工人。

当人们使用该应用程序时,它可能需要使用第三方 API 处理一些数据,这可能需要一些时间,而这正在处理其他人正在做其他需要其他工作的事情。现在,这一切都是按顺序发生的。作业 A 必须在作业 B 运行之前完成。

我希望 Job A 和 B 能够同时运行。或者,即使作业 A 已经在运行,我也希望作业 B 开始/结束。

laravel 如何支持这一点?我是否需要创建许多工人,并让每个类别的工作在不同的工人下运行?

nohup php artisan queue:work --daemon >/dev/null 2>&1 &

谢谢

标签: phplaravelmessage-queueworker

解决方案


查看队列文档的主管配置

在本例中,该numprocs指令将指示 Supervisor 运行 8queue:work个进程并监视所有进程,如果它们失败则自动重新启动它们。

如果您没有运行主管,您可以php artisan queue:work自己生成更多进程,但主管会为您监控这些内容。


推荐阅读