我有ROR应用程序和1个delay_job进程使用rake job:work运行。 ROR应用程序在多个队列中添加Job。
假设我们有队列1和队列2 我的问题是队列1中的任务,队列2中的任务将同时执行?
目前在我的应用程序中运行rake job后:工作进程只生成1个线程,执行queue1任务然后执行queue2任务。
如果我必须并行执行,我必须运行两个工作任务:工作。
它是正确的行为还是可以在1个工作任务中同时运行:工作。 什么是延迟工作的工人。延迟工作与工人互换使用
感谢
普里
答案 0 :(得分:0)
不,一个工作人员不能同时运行两个作业,您需要运行多个进程。
在您描述的示例中,您正在启动一个在前台运行的工作程序(rake job:work
),但您可以做的是通过运行{{1}来启动它们作为后台工作程序代替(bin/delayed_job
用于早期版本)。该命令有多个选项,可用于指定您希望delayed_job如何运行。
其中一个选项是script/delayed_job
或-n
。这意味着您可以通过运行以下命令来启动两个工作程序:
--number_of_workers=workers
也可以将某些工作人员专门用于仅从特定队列运行作业,或仅运行高优先级作业。