Laravel 运行artisan队列:使用其他参数
我正在尝试运行排队作业,并通过命令行传递其他参数。我的用例是: 我有4个通过主管运行的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个进程。启动排队作业时,必须找到当前未使用的进程号(1到4),然后在该进程中运行命令
我一直在使用一个数据库表来存储进程,它在use中有一列用于跟踪是否正在使用它,但我看到的问题是,当两个queue:work
命令同时运行时,可以从数据库中为两者选择相同的代理进程
我想要什么
php artisan队列:工作--process=1
然后以某种方式检索作业中的参数,这样我就可以分别在supervisor中运行我的4个进程
作为一种解决方法,我创建了一个自定义artisan命令,该命令将接受参数,但随后我将失去队列功能。我不想开发自定义队列进程
有没有办法通过这个论点?或者,是否有一种方法可以从自定义artisan命令中弹出队列中的作业,然后手动运行它们,而不是通过queue:work
?使用专用队列解决问题。因此,每个队列都附加了一个特定的代理进程。剩下的唯一一件事就是创建一个函数/进程来确定进程应该进入哪个队列
查看部分:为作业指定队列为什么不为这些进程创建专用队列?然后,您可以指定任务应推送到哪个队列,这样它将自动使用您想要的代理连接?请参阅指定作业队列的部分这可能就是我最终要做的。。。。但是,如何从作业内部获取进程ID?我想当我试图创建一个作业时,我可以查询jobs
表中每个进程上排队的作业数量,然后将作业推到最小的队列上,并将相同的进程ID传递给作业构造函数?我很难告诉您如何做,因为我不知道代码的结构。我希望你能想出一个办法让它为你工作@ThomasSnijder我确实是这样做的,欢迎你发布一个我可以接受的答案