バックエンド・API・データ · 中級

キューとバックグラウンドジョブ

一行でいうと: 一秒以上かかりユーザーへの応答に必要でないものはすべて、リクエストではなくキューに属する。

バックグラウンドに移動するもの

メールと通知の送信、レポートの生成、メディアの処理、外部システムとの同期、可用性を制御しないサービスへの呼び出し。

結果:ユーザーへの速い応答、そして耐障害性——外部サービスがダウンしたとき、ジョブは失敗せずに待つ。

ジョブごとの三つのルール

繰り返し可能。二重実行は重複を作らない。アクションごとのユニークキーで達成する。

小さい。二時間実行するジョブはリトライできないジョブだ。分割する。

報告済み。開始、終了、失敗、試行回数。

忘れられること

繰り返し失敗したジョブの未着キュー、アラート付き——さもなければ静かに消える。苦しんでいるサービスを落とさないように成長する遅延でリトライ。そして順序:順序が重要なら、パーティションキーを設定する;そうでなければ仮定するな。

さらに深く

三つの指標を監視する:キューの長さ、最も古いジョブの年齢、失敗率。日をかけてゆっくり上がるキューの長さは、ほとんどの負荷インシデントの早期症状であり、ユーザーが何かを感じるずっと前に現れる。