バックエンド・API・データ · 中級
キューとバックグラウンドジョブ
一行でいうと: 一秒以上かかりユーザーへの応答に必要でないものはすべて、リクエストではなくキューに属する。
バックグラウンドに移動するもの
メールと通知の送信、レポートの生成、メディアの処理、外部システムとの同期、可用性を制御しないサービスへの呼び出し。
結果:ユーザーへの速い応答、そして耐障害性——外部サービスがダウンしたとき、ジョブは失敗せずに待つ。
ジョブごとの三つのルール
繰り返し可能。二重実行は重複を作らない。アクションごとのユニークキーで達成する。
小さい。二時間実行するジョブはリトライできないジョブだ。分割する。
報告済み。開始、終了、失敗、試行回数。
忘れられること
繰り返し失敗したジョブの未着キュー、アラート付き——さもなければ静かに消える。苦しんでいるサービスを落とさないように成長する遅延でリトライ。そして順序:順序が重要なら、パーティションキーを設定する;そうでなければ仮定するな。
さらに深く
三つの指標を監視する:キューの長さ、最も古いジョブの年齢、失敗率。日をかけてゆっくり上がるキューの長さは、ほとんどの負荷インシデントの早期症状であり、ユーザーが何かを感じるずっと前に現れる。