Laravel 将作业推送到不同的低优先级队列
Laravel pushing jobs into different queue with low priority
现在我正在使用 Beanstalkd 和 Laravel forge 我的队列是这样的:dispatch(new ProcessPodcast($podcast));
但是我如何将一个队列推送到另一个低优先级的作业中呢?这只会将队列推入不同的作业但不会设置优先级:$job = (new ProcessPodcast($podcast))->onQueue('processing'); dispatch($job);
如果队列作业的优先级较低,是否意味着它会在没有那么多队列时稍后触发,或者低优先级作业如何工作?
dispatch((new Job)->onQueue('high'));
这段代码创建新的Job
class实例,序列化并存储在名为high的队列中,但这并不意味着这个队列是一个特别的。此外,这个队列的优先级可能低于 low 队列!这只是您用来命名队列的字符串,当然强烈建议遵循一些模式以使代码对其他开发人员更具可读性。
在config/queue.php
文件中,您可以定义将要处理的默认队列名称。如果您使用 php artisan queue:work
命令创建队列工作程序,那么它将监听该队列上的作业请求。但是,您可以使用 queue:work
命令中的 --queue
参数覆盖默认值:
php artisan queue:work --queue=high,low # or --queue=high,medium,low
此命令还设置了队列的优先级。只要 high 队列中有任何作业请求,它就会在 low 队列中的任何请求之前被处理。
现在我正在使用 Beanstalkd 和 Laravel forge 我的队列是这样的:dispatch(new ProcessPodcast($podcast));
但是我如何将一个队列推送到另一个低优先级的作业中呢?这只会将队列推入不同的作业但不会设置优先级:$job = (new ProcessPodcast($podcast))->onQueue('processing'); dispatch($job);
如果队列作业的优先级较低,是否意味着它会在没有那么多队列时稍后触发,或者低优先级作业如何工作?
dispatch((new Job)->onQueue('high'));
这段代码创建新的Job
class实例,序列化并存储在名为high的队列中,但这并不意味着这个队列是一个特别的。此外,这个队列的优先级可能低于 low 队列!这只是您用来命名队列的字符串,当然强烈建议遵循一些模式以使代码对其他开发人员更具可读性。
在config/queue.php
文件中,您可以定义将要处理的默认队列名称。如果您使用 php artisan queue:work
命令创建队列工作程序,那么它将监听该队列上的作业请求。但是,您可以使用 queue:work
命令中的 --queue
参数覆盖默认值:
php artisan queue:work --queue=high,low # or --queue=high,medium,low
此命令还设置了队列的优先级。只要 high 队列中有任何作业请求,它就会在 low 队列中的任何请求之前被处理。