是否可以通过某种方式将状态附加到队列工作器。
例如
queue:work --on-account=some@mail.com
,然后在作业中使用此--on-account
变量。
基本思想是,由于某些限制,我每个帐户只能有一个工作人员。而且它永远不会改变。因此,唯一的扩展方式是添加更多帐户。
每个作业都可以使用任何帐户进行处理。
我会接受
由于XYZ,这是不可能的。使用此技术可获得相同的结果。
也可以作为答案。
P.S。
这不是Running artisan queue:work with additional arguments的重复项,因为他的答案不适合我的情况。
答案 0 :(得分:2)
如何使用env vars?
您将按照以下方式运行队列:
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队列:redis工作
您可以通过仅处理给定连接的特定队列来进一步自定义队列工作器。例如,如果在redis队列连接上的电子邮件队列中处理了所有电子邮件,则可以发出以下命令来启动仅处理该队列的工作程序:
php artisan队列:redis工作--queue =电子邮件
至少就laravel而言,这可能是最干净的解决方案。 除非我错过了真正的问题。