【发布时间】:2018-07-17 16:29:54
【问题描述】:
我正在使用 laravel 5 和队列驱动程序 beanstalkd 已经安装在应用程序中,有人可以建议我必须做些什么来实现并行处理,我想在相同或不同的队列中并行运行作业。目前它一次只处理一项工作,非常耗时。
【问题讨论】:
标签: laravel-5 queue beanstalkd
我正在使用 laravel 5 和队列驱动程序 beanstalkd 已经安装在应用程序中,有人可以建议我必须做些什么来实现并行处理,我想在相同或不同的队列中并行运行作业。目前它一次只处理一项工作,非常耗时。
【问题讨论】:
标签: laravel-5 queue beanstalkd
您可以让多个工人分别观看多个管道。哪些作业将首先运行取决于它们被放入系统时的任何优先级,或者简单的先到先。
使用诸如“SupervisorD”之类的工具来启动和保持工作人员(一个或多个)运行是一种非常常见的模式。
【讨论】:
查看 Laravel 文档:
https://laravel.com/docs/5.5/queues#supervisor-configuration
主管是你需要的。主管将控制您的工人,如果他们死了,主管将重新启动他们。并行处理,查看Supervisor的属性numprocs
来自 Laravel 文档:
numprocs 指令将指示 Supervisor 运行 x queue:work 进程并监控所有这些进程,如果它们失败则自动重新启动它们。
【讨论】: