【问题标题】:Laravel 5.6. Attach state to a queue worker拉拉维尔 5.6。将状态附加到队列工作者
【发布时间】:2018-09-27 09:39:39
【问题描述】:

是否有可能以某种方式将状态附加到队列工作者。

例如

queue:work --on-account=some@mail.com

然后在作业中使用这个--on-account 变量。

基本思想是,由于某些限制,我每个帐户只能有一个工人。它永远不会改变。因此,扩大规模的唯一方法是添加更多帐户。

可以使用任何帐户处理每个作业。

我会接受的

这是不可能的,因为 XYZ。使用这种技术可以达到同样的效果。

也是一个答案。

附言

不是Running artisan queue:work with additional arguments 的重复,因为他的回答不适合我的情况。

【问题讨论】:

  • 您是从事多项工作还是只从事一项特定工作?
  • @milo526 处理多项工作。每个工作都可以由任何工作人员执行,但任何工作人员都应该只使用一个特定帐户工作(执行工作)。

标签: php laravel laravel-5.6 laravel-queue


【解决方案1】:

使用环境变量怎么样?

您将按如下方式运行队列:

export ACCOUNT="some@email";php artisan queue:work 然后,在工人中你会

$account getenv('ACCOUNT');

另一个想法可能是使用连接功能:

https://laravel.com/docs/5.7/queues#running-the-queue-worker

引用

您还可以指定工作人员应该使用哪个队列连接。传递给 work 命令的连接名称应与 config/queue.php 配置文件中定义的连接之一相对应:

php artisan queue:work redis

您可以通过仅处理给定连接的特定队列来进一步自定义队列工作程序。例如,如果您的所有电子邮件都在您的 redis 队列连接上的电子邮件队列中处理,您可以发出以下命令来启动仅处理该队列的工作人员:

php artisan queue:work redis --queue=emails

至少就 laravel 而言,这可能是最干净的解决方案。 除非我错过了真正的问题。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 2018-10-16
    • 2018-05-23
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2018-11-01
    相关资源
    最近更新 更多