现在,我正在使用Beanstalkd和Laravel作为我的队列,我这样做:dispatch(new ProcessPodcast($podcast));。
但是,如何将队列推入优先级较低的不同工作中呢?这只会将队列推入不同的作业,但不会设置优先级:$job = (new ProcessPodcast($podcast))->onQueue('processing'); dispatch($job);。
如果队列作业的优先级很低,那么它是否意味着在没有多个队列时会被触发,或者低优先级作业是如何工作的?
发布于 2017-04-19 08:18:12
dispatch((new Job)->onQueue('high'));这段代码创建新的Job类实例,将其序列化并存储在名为high的队列中,但这并不意味着此队列是一个特殊的队列。此外,该队列的优先级可能低于低队列!这只是一个用来命名队列的字符串,当然,强烈建议遵循一些模式,以使其他开发人员能够更好地阅读代码。
在config/queue.php文件中,可以定义将要处理的默认队列名。如果使用php artisan queue:work命令创建队列工作者,那么它将侦听该队列上的作业请求。但是,您可以在--queue命令中使用queue:work参数覆盖默认值:
php artisan queue:work --queue=high,low # or --queue=high,medium,low此命令还设置队列的优先级。只要在高队列中有任何作业请求,它就会在低队列中的任何请求之前被处理。
https://stackoverflow.com/questions/43437410
复制相似问题