0
私は、Beanstalk-client-rubyを使用して、Beanstalkdキュー内のリクエストを処理する複数のワーカーを持っています。TTR期限切れのジョブをキューに戻したワーカーを検出しますか?
テストの目的で、キューからジョブを取得した後、無作為にループしていきます。
Beanstalkは、ジョブがあまりにも長く予約されていることに気づき、他のワーカーが処理するためにキューに戻します。
私はこれが起こったことをどのように検出して、誤動作した作業者を殺すことができますか?することができます私は何かのようにどのように今
> job.timeouts
=> 0
> sleep 10
=> nil
> job.timeouts
=> 1
:
> job=queue.reserve
=> 189
> job.MAGICAL_INFO_STORE[:previous_worker_pid] = $$
=> extraordinary magic happened
> sleep 10
=> nil
> job=queue.reserve
=> 189
> job.timeouts
=> 1
> kill_the_sucker(job.MAGICAL_INFO_STORE[:previous_worker_pid])
=> nil