gpt4 book ai didi

ruby - Delayed_job - 多个并行队列?

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:30 25 4
gpt4 key购买 nike

我正在使用 delayed_job 并转移到一个更强大的新服务器。所以现在我想运行并行作业,就像现在一样I have the POWER! ,但对 delayed_job 是否可以运行多个并行队列感到困惑?

This question建议有命名队列,但这些队列是否都在一个表中运行,因此是顺序的?

在底部@Jesse Wolgamott 建议您可以为每个队列创建一个表,然后并行运行。

有没有人这样做过,他们能告诉我是怎么做到的吗?

最佳答案

这是可能的,而且我一直在这样做。在我们的例子中,我们需要多个作业来处理三种不同类型的作业,比如 queue_a、queue_b 和 queue_c。系统将在 delayed_job 表和相应命名的队列中创建条目。

启动多个延迟作业,例如

RAILS_ENV=production script/delayed_job -i first --queue=queue_a start
RAILS_ENV=production script/delayed_job -i second --queue=queue_a start
RAILS_ENV=production script/delayed_job -i third --queue=queue_b start
RAILS_ENV=production script/delayed_job -i fourth --queue=queue_c start

每个命令都会创建一个 delayed_job,所以现在会有 4 个并行作业,其中两个服务于 queue_a,一个服务于 queue_b 和 queue_c。这里的关键是通过指定实例名称的 -i 选项传递的标识符,我们可以根据需要启动和停止作业。

另一种选择是使用工作池。

RAILS_ENV=production script/delayed_job --pool=tracking --pool=mailers,tasks:2 --pool=*:2 start

该命令将为跟踪队列启动 1 个 worker,为邮件程序和任务队列启动 2 个 worker,并为任何作业启动 2 个 worker。

关于ruby - Delayed_job - 多个并行队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479318/

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