【问题标题】:Resque: Jobs must be placed onto a queue. No queue could be inferred for class WorkerResque:作业必须放在队列中。无法为类 Worker 推断出队列
【发布时间】:2018-08-22 20:05:04
【问题描述】:

我正在开发一个涉及使用 Resque 的 Rails 应用程序。我在工人类中定义了我的队列。

def self.queue
  @queue = :my_worker_queue
end

但我还是得到了

作业必须放在队列中。无法为 Worker 类推断队列

关于如何定义队列有什么想法吗?谢谢!

【问题讨论】:

  • 您是如何运行该应用程序的?你需要启动worker $ QUEUE= my_worker_queue rake resque:work
  • 我通过启动 rails 服务器并发布到一个表来启动它,该表应该使用 Resque.enqueue 将工作人员排队

标签: ruby-on-rails ruby queue resque


【解决方案1】:

Resque 要求您使用队列名称设置类级实例变量。这就是您的 self.queue 方法所做的,但只有在您实际调用它时才会这样做。

更简单的选择是删除self.queue 方法并将@queue = :my_worker_queue 放在类本身的顶部。

所以应该是这样的

class Worker
  @queue = :my_worker_queue

  def self.perform
    # do your stuff
  end
end

更多信息: http://tutorials.jumpstartlab.com/topics/performance/background_jobs.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 2012-05-11
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多