Laravel以低优先级将作业推送到不同的队列中



现在我正在使用Beanstalkd和Laravel锻造作为我的队列,我像这样触发:dispatch(new ProcessPodcast($podcast));

但是,如何将队列推送到优先级较低的其他作业中呢?这只会将队列推送到不同的作业中,但不会设置优先级:$job = (new ProcessPodcast($podcast))->onQueue('processing'); dispatch($job);

如果队列作业具有低优先级,

这是否意味着它将在没有那么多队列时稍后触发,或者低优先级作业如何工作?

dispatch((new Job)->onQueue('high'));

这段代码创建新的Job类实例,对其进行序列化并存储在名为 high 的队列中,但这并不意味着此队列是特殊的队列。此外,此队列的优先级可能低于队列!这只是您用来命名队列的字符串,当然强烈建议遵循一些模式以使代码对其他开发人员更具可读性。

config/queue.php文件中,您可以定义将要处理的默认队列名称。如果使用php artisan queue:work命令创建队列工作线程,则它将侦听该队列上的作业请求。但是,您可以使用queue:work命令中的--queue参数覆盖默认值:

php artisan queue:work --queue=high,low # or --queue=high,medium,low

此命令还设置队列的优先级。只要队列中有任何作业请求,它就会在队列中的任何请求之前被处理。

相关内容

  • 没有找到相关文章

最新更新