delayed_jobs 并发
concurrency in delayed_jobs
我有 ROR 应用程序和 1 个 delay_job 进程 运行 使用 rake job:work。
ROR 应用程序在多个队列中添加作业。
假设我们有队列 1 和队列 2。
我的问题是队列 1 中的任务和队列 2 中的任务会同时执行吗?
目前在我的应用程序中 运行ning rake job:work 处理后只有 1 个线程被生成,它执行队列 1 任务,然后执行队列 2 任务。
如果我必须并行执行,我必须 运行 两个 job:work 的 rake 任务。
这是正确的行为还是可以 运行 在 job:work 的 1 个 rake 任务中同时进行。
以及 Delay Job 中的 worker 是什么。延迟作业是否可以与 worker
互换使用
谢谢
朴雅卡
不,一名工人不能 运行 同时执行两项工作,为此您需要多个进程 运行ning。
在您描述的示例中,您正在启动一个在前台 运行ning 的工作人员 (rake job:work
),但是您可以做的是将它们作为后台工作人员启动,由 运行ning bin/delayed_job
代替(早期版本为 script/delayed_job
)。该命令有多个选项,您可以使用它们来指定 delayed_job 如何运行。
其中一个选项是-n
或--number_of_workers=workers
。这意味着您可以通过 运行 执行以下命令来启动两个工人:
bundle exec bin/delayed_job --number_of_workers=2 start
也可以将某些工作人员专用于特定队列中的 运行 个作业,或仅专用于高优先级作业。
我有 ROR 应用程序和 1 个 delay_job 进程 运行 使用 rake job:work。 ROR 应用程序在多个队列中添加作业。
假设我们有队列 1 和队列 2。
我的问题是队列 1 中的任务和队列 2 中的任务会同时执行吗?
目前在我的应用程序中 运行ning rake job:work 处理后只有 1 个线程被生成,它执行队列 1 任务,然后执行队列 2 任务。
如果我必须并行执行,我必须 运行 两个 job:work 的 rake 任务。
这是正确的行为还是可以 运行 在 job:work 的 1 个 rake 任务中同时进行。 以及 Delay Job 中的 worker 是什么。延迟作业是否可以与 worker
互换使用谢谢
朴雅卡
不,一名工人不能 运行 同时执行两项工作,为此您需要多个进程 运行ning。
在您描述的示例中,您正在启动一个在前台 运行ning 的工作人员 (rake job:work
),但是您可以做的是将它们作为后台工作人员启动,由 运行ning bin/delayed_job
代替(早期版本为 script/delayed_job
)。该命令有多个选项,您可以使用它们来指定 delayed_job 如何运行。
其中一个选项是-n
或--number_of_workers=workers
。这意味着您可以通过 运行 执行以下命令来启动两个工人:
bundle exec bin/delayed_job --number_of_workers=2 start
也可以将某些工作人员专用于特定队列中的 运行 个作业,或仅专用于高优先级作业。