このトピックでは、メッセージ統合のデフォルトの再試行ポリシーとデッドレターキューについて説明します。
再試行ポリシー
再試行ポリシーは、失敗したタスクをどのように再試行するかを定義します。メッセージ統合では、バックオフ再試行と指数減衰再試行の 2 種類の再試行ポリシーをサポートしています。
バックオフ再試行 (デフォルト):失敗したタスクを最大 3 回まで再試行します。再試行間隔は 10 秒から 20 秒の間のランダムな値です。
指数減衰再試行:失敗したタスクを 1 日間で最大 176 回まで再試行します。再試行間隔は指数関数的に増加し、最大 512 秒になります。具体的な再試行間隔は、1 秒、2 秒、4 秒、8 秒、...、512 秒です。
フォールトトレランスポリシー
フォールトトレランスポリシーは、エラーをどのように処理するかを定義します。2 種類のフォールトトレランスポリシーがサポートされています。
フォールトトレランス許容 (推奨):例外が発生してもタスク実行はブロックされません。再試行回数が上限を超えた場合、設定に基づいて、メッセージはデッドレターキューに配信されるか、破棄されます。
フォールトトレランス禁止:例外が発生し、再試行回数が再試行ポリシーで設定された制限を超えた場合、タスク実行がブロックされます。その後、タスクのステータスは [準備完了] に変更されます。
リソース設定エラーなどの回復不能なエラーが発生した場合、タスクのステータスは [起動失敗] に設定されます。
デッドレターキュー
デッドレターキューはタスクごとに設定されます。メッセージを処理できない場合、または再試行回数が上限を超えた場合、元の生データがデッドレターキューに送信されます。この機能はデフォルトで無効になっています。
現在、デッドレターメッセージは ApsaraMQ for RocketMQ、Simple Message Queue (旧称:MNS)、ApsaraMQ for Kafka、および EventBridge に送信できます。