【问题标题】:Laravel pushing jobs into different queue with low priorityLaravel 将作业推送到低优先级的不同队列中
【发布时间】:2017-09-12 05:46:39
【问题描述】:

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

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

如果队列作业具有低优先级,是否意味着它会在没有那么多队列时被触发,或者低优先级作业如何工作?

【问题讨论】:

  • queue priorities 部分没有回答您的问题?
  • @WojciechMleczek 不,这是否意味着我必须根据优先级使用不同的队列驱动程序?我只想用豆茎

标签: php laravel queue beanstalkd


【解决方案1】:
dispatch((new Job)->onQueue('high'));

这段代码创建了一个新的Job类实例,将其序列化并存储在名为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 队列中的任何请求之前被处理。

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多