2017-04-06 17 views
4

キューにプッシュされたときにジョブとして実行されるスクリプトがあります。私は他の待ち行列をいくつか持っており、これらのすべてはスーパーバイザーによって処理されます。私はLaravel 4.2でキュードライバとしてRedisを使用しています。Laravelジョブと予約済みステータスまたは予約済みキュー

私は仕事の異なるステータスについて知りたい:

  • ジョブが実行されるのを待って
  • 失敗したジョブ
  • 予約ジョブ

これらの問題点ステータスが異なるのは、予約されたキューqueue:xyz:reservedに何千ものジョブがあることです(理由は分かりません)。キューには、queue:xyzがプッシュされています。 ROM予約キュー)は、新しくプッシュされたジョブの実行をブロックする。続き

は、ジョブを処理するためにsupervisordが運営するコマンドです: php artisan queue:work --queue=xyz --tries=1 --daemon --env=prodEnv 私の質問/ sがある:

  • それが押されている理由のジョブが予約されたキュー/状態
  • にプッシュされる理由Laravelによって元のキューに戻ってきますか?
  • 失敗ジョブと予約ジョブの違いは何ですか? OR
  • 失敗したジョブまたは予約されたジョブは、いつですか?

予約されたジョブを元のキューにプッシュするプロセスは、キュー内の新しいジョブの処理を遅くします。これは、予約されたジョブを処理することでより速くしたいのです。

答えて

0

私は同じ問題があり、最終的にそれを並べ替えることができました。

私の場合、これは実行時エラーが原因でした。

コードのセクションにA、B、Cと書かれた仕事がありました。セクションCは毎回ランタイムエラーを引き起こし、セクションAとセクションBの効果を期待どおりに見ることができましたが、ジョブが予約された状態にプッシュされ、セクションCの実行の影響は観察されませんでした。

興味深いことに、私は別のジョブを実行していましたが、ランタイムエラーが修正された後、セクションCが実行され、予約ジョブからジョブが削除されました。

これはあなたの質問のすべてに直接答えるわけではありませんが、それがその質問に役立つことを願っています。

関連する問題