【问题标题】:Use Delayed::Job to manage multiple job queues使用 Delayed::Job 管理多个作业队列
【发布时间】:2011-03-02 05:46:34
【问题描述】:

我想使用 Delayed::Job(或者更适合我的问题的作业队列)将作业分派给多个后台守护进程。

我有几个执行不同职责的后台守护进程。每个人都对 Rails 应用程序队列中的不同作业感兴趣。是否可以使用 Delayed::Job,或者可能有更适合此任务的不同作业队列?

【问题讨论】:

    标签: ruby-on-rails ruby delayed-job


    【解决方案1】:

    从那时起http://github.com/collectiveidea/delayed_job 已达到 v3.0 并包括命名队列!非常适合简单的分组队列需求。

    【讨论】:

      【解决方案2】:

      如果您喜欢延迟作业,那么创建多个表就足够简单了,每个队列一个

      worker 从

      获取它的表名
      class Job < ActiveRecord::Base
          MAX_ATTEMPTS = 25
          MAX_RUN_TIME = 4.hours
          set_table_name :delayed_jobs
      

      因此您可以对其进行编辑并为每个表创建一个迁移。然后,当您开始工作时,您将为每个队列启动一名工作人员。

      来源:http://github.com/tobi/delayed_job

      【讨论】:

        【解决方案3】:

        Resque是一个支持多队列的作业队列库。

        【讨论】:

          【解决方案4】:

          答案在这里:

          Delayed_job - Multiple parallel queues?

          使用delayed_job 中的-i 选项(而不是用于生成多个worker 的-n 选项)为每个作业设置唯一ID。

          【讨论】:

            【解决方案5】:

            DJ 工作人员只需从队列中获取第一个工作(只有一个)并执行。每个工人都和其他工人一样。您可以运行多个工作器,但它们都将在同一个队列中工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-10-08
              • 2013-10-07
              • 2012-11-11
              • 2021-09-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多