7.3.3. 受信メッセージについて非同期的に確認する
信頼できるリンク(技術的に at-least-once reinfrablity を持つリンク)は、リンクの信頼性を指定せずにレシーバーの作成時に使用されるデフォルトのリンクです。信頼性のないリンクのメッセージ確認応答は、を参照してください 信頼性のないリンク上でメッセージを受信したことを承認する。信頼できるリンクで受信されたメッセージは、コンシューマーによって承認されるまで
acquired
ブローカーに設定されます。メッセージが acquired
モードの場合、キューには表示されません。応答を承認せずにコンシューマーが切断される acquired
と、ヘッダーを使用してメッセージがコンシューマーから再度利用可能になり redelivered=true
ます。
キューからメッセージを削除するには、コンシューマーはメッセージの受信を確認する必要があります。
Python では、
session
オブジェクトの acknowledge()
メソッドを呼び出してこれを行います。
- python
session.acknowledge()
session.acknowledge()
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
引数のない
acknowledge()
メソッドを呼び出すと、そのセッションを使用してフェッチされたすべてのメッセージとして承認されます。特定のメッセージを承認するには、メッセージを引数として渡します。例:
- python
msg = rx.fetch(timeout = 1) session.acknowledge(msg)
msg = rx.fetch(timeout = 1) session.acknowledge(msg)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このメソッドはデフォルトで同期的に実行され、ブローカーが応答するまで待機してから返信します。また、
sync = False
パラメーターを指定して非同期的に呼び出すこともできます。
- python
session.acknowledge(msg, sync = False)
session.acknowledge(msg, sync = False)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
信頼性のないリンク上でメッセージを受信したことを承認する
レシーバーに unreliable
リンクが要求されると、メッセージの取得時に確認応答が暗黙的になります。つまり、ブローカーは受信側が取得するとすぐにメッセージをマークします。確認を必要としず、メッセージのリリースや拒否はできません。