Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 运行artisan队列:使用其他参数_Laravel_Laravel 5.1_Supervisord_Laravel Artisan - Fatal编程技术网

Laravel 运行artisan队列:使用其他参数

Laravel 运行artisan队列:使用其他参数,laravel,laravel-5.1,supervisord,laravel-artisan,Laravel,Laravel 5.1,Supervisord,Laravel Artisan,我正在尝试运行排队作业,并通过命令行传递其他参数。我的用例是: 我有4个通过主管运行的队列:工作流程。我队列中的作业都需要访问代理服务器,通过代理服务器,我在任何给定时间只能运行4个进程。启动排队作业时,必须找到当前未使用的进程号(1到4),然后在该进程中运行命令 我一直在使用一个数据库表来存储进程,它在use中有一列用于跟踪是否正在使用它,但我看到的问题是,当两个queue:work命令同时运行时,可以从数据库中为两者选择相同的代理进程 我想要什么 php artisan队列:工作--proc

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

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

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

我想要什么

php artisan队列:工作--process=1

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

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


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

使用专用队列解决问题。因此,每个队列都附加了一个特定的代理进程。剩下的唯一一件事就是创建一个函数/进程来确定进程应该进入哪个队列


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

为什么不为这些进程创建专用队列?然后,您可以指定任务应推送到哪个队列,这样它将自动使用您想要的代理连接?请参阅指定作业队列的部分这可能就是我最终要做的。。。。但是,如何从作业内部获取进程ID?我想当我试图创建一个作业时,我可以查询
jobs
表中每个进程上排队的作业数量,然后将作业推到最小的队列上,并将相同的进程ID传递给作业构造函数?我很难告诉您如何做,因为我不知道代码的结构。我希望你能想出一个办法让它为你工作@ThomasSnijder我确实是这样做的,欢迎你发布一个我可以接受的答案