使用delayed_job_3的新延迟作业的默认队列



我正在使用多个共享同一DB的heroku服务器。我希望每个服务器只处理创建延迟作业条目的服务器的延迟作业。

例如:

服务器A只处理队列"Server_A"

服务器A只处理队列"Server_b"

等等。。。

这可以通过使用延迟作业3来实现(https://github.com/collectiveidea/delayed_job)

然而,为了实现这一点,我需要为创建的每个延迟作业手动分配一个队列名称,这可能会很痛苦。(例如:object.delay(:queue=>‘tracking’).method)

相反,我希望能够为所有新作业分配一个"默认队列"。理想情况下,我把这样的东西放在一个delayed_job_config.rb&它起作用:

DEFAULT_QUEUE_NAME=ENV['APP_NAME']

这个想法是我对现有的延迟工作什么都不做&他们会自动分配一个与应用服务器名称相同的队列。

我正在寻找如何实现这一点的建议——或者,如果你想尝试一下,可以向我扔一些代码。

提前感谢!

config/initializers/delayed_job.rb

Delayed::Worker.default_queue_name = `hostname`.chomp

最新更新