php - 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 &
谢谢
解决方案
查看队列文档的主管配置。
在本例中,该
numprocs
指令将指示 Supervisor 运行 8queue:work
个进程并监视所有进程,如果它们失败则自动重新启动它们。
如果您没有运行主管,您可以php artisan queue:work
自己生成更多进程,但主管会为您监控这些内容。
推荐阅读
- android - 我有来自 geojson 的多个地图图层。需要从每一个中获取一个点击事件
- javascript - 如何使用来自 JS 的两个 ID?
- reactjs - React - 文件夹结构
- react-native - 在我的反应原生项目中显示模态时显示吐司?
- python - 使用 python 运行 yamllint 命令行
- python - 迭代中的最后一个值被保存在 python 中
- owl-carousel - 猫头鹰旋转木马没有显示
- go - 给定代码的执行流程将如何?还有 go-routines 将如何在这里执行?
- php - soapCall 不返回任何值
- asp.net-core - 将应用程序从 netcore 2 更新到 3 不能使用 automapper