运行 artisan queue:work 附加参数

Running artisan queue:work with additional arguments

我正在尝试 运行 排队作业,并通过命令行传递其他参数。我的用例是这样的:

我有 4 个 运行ning queue:work 进程通过主管。我队列中的作业都需要访问代理服务器,通过它我在任何给定时间只能有 4 个进程 运行ning。当我启动排队作业时,我必须找到当前未使用的进程号(1 到 4),然后 运行 我的命令通过该进程。

我一直在使用数据库 table 来存储进程,它有一个 in_use 的列来跟踪它是否被使用,但我看到的问题是当两个queue:work 同时命令 运行,可以从数据库中为两者选择相同的代理进程。

我想要的

php artisan queue:work --process=1

然后以某种方式在作业中检索该参数,这样我就可以 运行 我的 4 个进程分别在主管中。

作为解决方法,我创建了一个自定义的 artisan 命令,它将接受参数,但随后我失去了队列功能。我不想开发自定义队列进程。

有没有办法传递这个参数?或者,有没有一种方法可以让我从我的自定义 artisan 命令中将作业从队列中弹出,然后手动 运行 它们而不是通过 queue:work?

这个问题可以通过使用专用队列来解决。所以每个队列都有一个特定的代理进程附加到它。唯一剩下的就是创建一个 function/process 来确定进程应该进入哪个队列。

https://laravel.com/docs/5.1/queues#pushing-jobs-onto-the-queue

查看部分:为作业指定队列