4

我正在尝试对 rails 应用程序的各个部分使用delayed_job。问题是,如果我们有多个应用程序实例正在运行,但某些作业(例如处理上传)需要由本地工作人员运行,而其他工作可以通过由任何工作人员运行来受益。

有没有人对拥有本地/非本地工作类型的好方法有任何建议?

4

1 回答 1

8

我刚刚阅读了最新一期 Rails Magazine中的“Background Processing with delayed_job”,我突然想到您可能会滥用内置的作业优先级系统。

您可以为工作人员指定最低和最高优先级。现在,如果您的特殊本地作业的优先级为 42,则该工作人员将仅处理这些作业...

rake jobs:work RAILS_ENV=production MIN_PRIORITY=42 MAX_PRIORITY=42

而这个工人将处理除了那些特殊的本地作业之外的所有东西:

rake jobs:work RAILS_ENV=production MIN_PRIORITY=0 MAX_PRIORITY=10

这应该足够灵活以实现您的需要。但是,我坦率地承认,我今天才知道这个功能,还没有亲自尝试过,所以 YMMV!

于 2009-09-04T19:17:19.347 回答