0

我正在Windows XP 上试用Huginn,并且我已经安装了所有必需的组件,但是这段代码agent.rb不起作用:

    # The call that doesn't work
    Agent.async_receive(agent.id, agents_to_events[agent.id].uniq)

# ...

def async_receive(agent_id, event_ids)
   # See github...
end
handle_asynchronously :async_receive

如果我内联async_receive代码它工作正常,但如果我查看/delayed_job我看到:

ID: 26
Priority: 10
Attempts: 0
Handler: --- !ruby/object:Delayed::PerformableMethod
         object: !ruby/class 'Agent'
         method_name: :async_receive_without_delay
         args: [...]

我注意到方法名称变成了:async_receive_without_delay,但我不知道它的意义。

更新:我进一步注意到上述运行rake jobs:work结果async_receive正常。我在某处错过了初始化吗?

4

1 回答 1

1

为了使作业排队handle_asynchronouslydelay执行,您需要运行 1 个或多个延迟作业实例。有不止一种方法可以做到这一点,其中之一是

 rake jobs:work

另一个是

ruby script/delayed_job start

您可能希望设置类似上帝的东西,以便在他们停止时重新启动延迟的工作人员。

于 2013-07-29T09:47:39.430 回答