0

我在我的 Rails 3.2 应用程序中设置了 Resque,并有一个成功调用的后挂钩

Resque.enqueue(SomeJob, self.class.name, id)

我可以看到这项工作被解雇了,但我的 SomeJob 类中没有任何方法被执行。我设置了一个记录器,确认 SomeJob 被执行,但我的 self.perform 块中的日志语句永远不会被调用。

def self.perform
  log.debug("working")
end

到目前为止,我已经尝试了名为 self.work、work、self.perform、perform 的方法,但似乎没有任何调用。Resque 文档似乎面向即将发布的 2.0.0 版本,但即使使用 1.24.1 或 1.22,我也无法完全使用它。

在 Resque 中调用的魔法方法是什么?有没有办法在 Resque.enqueue 中显式调用它?

4

1 回答 1

0

乍一看,您似乎在传递两个参数 (self.class.nameid),但 self.perform 方法无法接受它们,因此它可能会因无效参数错误而静默失败。

我的建议是将 self.perform 方法更改为以下内容:

def self.perform(class_name, id)
  log.debug("working: class_name=#{class_name} id=#{id}")
end
于 2013-05-18T16:33:44.080 回答