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

キューに入れられたジョブを実行するには、遅延ジョブのインスタンスを 1 つhandle_asynchronously以上delay実行する必要があります。これを行う方法は複数ありますが、そのうちの 1 つは次のとおりです。

 rake jobs:work

もう一つは

ruby script/delayed_job start

遅延したジョブワーカーが停止した場合に再起動するように、神のようなものをセットアップしたい場合があります。

于 2013-07-29T09:47:39.430 に答える