gpt4 book ai didi

ruby-on-rails - delayed_jobs 中的并发

转载 作者:行者123 更新时间:2023-12-03 08:37:17 25 4
gpt4 key购买 nike

我有 ROR 应用程序和 1 个 delay_job 进程使用 rake job:work 运行。ROR 应用在多个队列中添加 Job。

假设我们有队列 1 和队列 2。
我的问题是队列 1 中的任务和队列 2 中的任务会同时执行吗?

目前在我的应用程序中运行 rake job:work process 只有 1 个线程被生成,它执行 queue1 任务然后执行 queue2 任务。
如果我必须并行执行,我必须运行 job:work 的两个 rake 任务。

这是正确的行为还是可以在 job:work 的 1 个 rake 任务中同时运行。以及 Delay Job 中的 worker 是什么。 delay Job 是否可以与 worker 互换使用

谢谢
朴雅卡

最佳答案

不,一个工作人员不能同时运行两个作业,为此您需要运行多个进程。

在您所描述的示例中,您正在启动一个在前台运行的工作人员 (rake job:work),但您可以改为将它们作为后台工作人员启动,通过运行 bin/delayed_job 代替(script/delayed_job 对于早期版本)。该命令有多个选项,您可以使用它们来指定 delayed_job 如何运行。

其中一个选项是 -n--number_of_workers=workers。这意味着您可以通过运行以下命令来启动两个工作人员:

bundle exec bin/delayed_job --number_of_workers=2 start

也可以指定某些工作人员仅运行来自特定队列的作业,或仅运行高优先级作业。

关于ruby-on-rails - delayed_jobs 中的并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com