gpt4 book ai didi

ruby-on-rails - 延迟作业排除队列

转载 作者:行者123 更新时间:2023-12-04 21:06:27 24 4
gpt4 key购买 nike

我有一个延迟的作业队列,其中包含运行速度特别慢的任务,我希望由它自己的一组专用工作人员处理这些任务,因此它会阻碍其余工作人员管道的风险较小。
RAILS_ENV=production script/delayed_job --queue=super_slow_stuff start
但是,我还想要一个用于所有其他队列的通用工作池,希望不必单独指定它们(因为它们的名称等也经常更改/添加)。类似于:
RAILS_ENV=production script/delayed_job --except-queue=super_slow_stuff start
我可以使用通配符 *性格,但我想这会导致第二个 worker 也接过 super 慢的工作吗?

对此有何建议?

最佳答案

您可以为所有队列为您的应用程序定义一个全局常量。

QUEUES={
mailers: 'mailers',
etc..
}

然后在你的延迟方法调用中使用这个常量
object.delay(queue: QUEUES[:mailers]).do_something

并尝试动态构建 delay_job_args
system("RAILS_ENV=production script/delayed_job --pool=super_slow_stuff --pool:#{(QUEUES.values-[super_slow_stuff]).join(',')}:number_of_workers start")

关于ruby-on-rails - 延迟作业排除队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44808629/

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