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