すべてのプロダクト
Search
ドキュメントセンター

Simple Message Queue (formerly MNS):遅延メッセージ

最終更新日:Jan 24, 2025

Simple Message Queue (SMQ、旧称 MNS) では、キューからのメッセージの消費遅延期間を構成できます。このトピックでは、遅延機能の一般的なシナリオ、有効なルール、およびメソッドについて説明します。

シナリオ

シナリオ 1:分散時間指定スケジューリング

分散時間指定スケジューリングのシナリオには、さまざまな 時間の粒度 レベルが必要なタスクが含まれます。たとえば、毎日 5 時にファイルクリーンアップを実行するタスクと、2 分ごとにメッセージプッシュをトリガーするタスクなどです。従来のデータセットベースの時間指定スケジューリングソリューションは、分散シナリオでは複雑で非効率的です。これに対し、SMQ の遅延メッセージを使用すると、複数のタイプの時間トリガーをカプセル化できます。

シナリオ 2:タスクタイムアウト処理

タスクタイムアウト処理に関連する典型的なシナリオは、e コマース決済です。未払いの注文は、すぐにキャンセルされるのではなく、特定の期間未払いのままになるとキャンセルされます。この場合、SMQ の遅延メッセージを使用して、タイムアウトタスクを確認およびトリガーできます。

遅延メッセージに基づくタスクタイムアウト処理には、次の利点があります。

  • さまざまな 時間の粒度 レベルと簡素化された開発:SMQ の遅延メッセージには、固定された 増分 時間の制限はありません。任意の 時間の粒度 レベルで、ビジネスの 重複排除 なしでタスクをトリガーできます。

  • 高パフォーマンスと スケーラビリティ:SMQ の遅延メッセージは、高い 同時実行性 と スケーラビリティ を提供します。これは、実装が複雑で、スキャン用の API 呼び出しが頻繁に行われるためにパフォーマンスのボトルネックが発生する可能性のある従来のデータベーススキャン方式よりも優れています。

説明

SMQ は、キューレベルとメッセージレベルの遅延機能を提供します。

キューレベルの遅延メッセージ

キューを作成するときに、DelaySeconds パラメーター を指定できます。デフォルトでは、キューに送信されたすべてのメッセージは、この パラメーター で指定された期間が経過した後に消費されます。

  • 単位:秒。

  • 有効な値:0 ~ 604,800 秒(0 秒~ 7 日)。

メッセージレベルの遅延メッセージ

メッセージを作成するときに、DelaySeconds パラメーター を指定できます。メッセージは、この パラメーター で指定された期間が経過した後に消費されます。

  • 単位:秒。

  • 有効な値:0 ~ 604,800 秒(0 秒~ 7 日)。

有効なルール

メッセージの DelaySeconds パラメーター が 0 より大きい場合、メッセージレベルの遅延設定はキューレベルの遅延設定よりも優先されます。この場合、メッセージの DelaySeconds パラメーター を構成すると、その 構成 によってキューレベルの遅延設定が 上書き されます。

次の表に、有効なルールを示します。

シナリオ

メッセージレベルの DelaySeconds パラメーター

キューレベルの DelaySeconds パラメーター

有効なルール

シナリオ 1

0 より大きい

0 以上

メッセージレベルの遅延設定は、キューレベルの遅延設定よりも優先されます。

たとえば、Queue-ADelaySeconds パラメーター を 600 秒に設定します。

  • Queue-A に送信された Message1DelaySeconds パラメーター が 30 秒に設定されている場合、遅延設定は 30 秒後に有効になります。メッセージは 30 秒後にコンシューマーに表示されます。

  • キュー Queue-A に送信された Message1DelaySeconds パラメーター が 1,200 秒に設定されている場合、遅延設定は 1,200 秒後に有効になります。メッセージは 1,200 秒後にコンシューマーに表示されます。

シナリオ 2

0 または空

0 より大きい

メッセージは、キューの DelaySeconds パラメーター に基づいて配信されます。

ライフサイクル

通常のメッセージと比較して、遅延メッセージにはスケジュール済みの状態が含まれます。

  • スケジュール済み:メッセージはブローカーに送信されますが、まだ遅延時間の終わりに達していません。この期間中、メッセージはスケジュール済みの状態になり、コンシューマーには表示されません。

  • メッセージ表示可能:遅延期間が終了すると、メッセージが表示され、コンシューマーが使用できるようになります。

  • メッセージ非表示:コンシューマーがメッセージを受信した後、メッセージは非表示の状態になります。この場合、他のコンシューマーはメッセージを取得できません。

  • メッセージ削除済み:コンシューマーがメッセージを正常に消費した後、削除 操作 を呼び出すことによってメッセージを削除できます。

メトリック

SMQ でスケジュールされているメッセージの NumberOfMessagesDelayed パラメーター のメトリックを構成できます。詳細については、「CloudMonitor」のトピックにある「メトリック」セクションをご参照ください。