VMキューのメッセージ取得

前回はVMキューのメッセージ送信とイベント処理について使い方を説明しました。今回は、VMのListenerを使わずに手動でメッセージを取得する方法について簡単に説明したいと思います。

スポンサーリンク

今回使うコンポーネント

コンポーネントアイコン・領域用途
ConsumeIs TrueVMキューに登録済みのメッセージを取得する

使い方

consumeコンポーネントはキューにPublishしたメッセージを手動で取得するコンポーネントになります。

フローの配置方法については、Publishコンポーネントとは別のフローで、Consumeコンポーネントを配置します。HTTP  Listener等のフローに配置しましょう。

一方のHTTP ListenerにVMキューをメッセージ送信するフロー。もう一方のHTTP Listenerにメッセージを取り出すフローを作成してみます。シンプルな配置ですが、以下のようになります。

メッセージをキューに送信するフロー

VMキュー送信フロー

メッセージを取得するフロー

VMキュー取得フロー

メッセージをキューに登録するリクエストを実行した後に、

VMキューへの登録

Consumeが含まれているフローを実施すると、このようにpayload(Advancedで設定可)に取得したメッセージがセットされます。

VMキューの取得

注意点

VMのListenerとの併用不可

consumeコンポーネントはキューのメッセージを手動で取り出すことになるため、キューへの登録とともに自動的に発動するVM Listenerとは同時に使用することができません。

キューへの送信にPubulish consumeは使用しないこと

キューへの送信はPubulishとPubulish consumeの2つがありますが、Pubulish consumeはVM Listenerとの同期を行うためのコンポーネントとなりますので、手動でメッセージを取り出すConsumeに対して使用することはできません。使用した場合はタイムアウトのエラーが発生します。

メッセージ未登録の場合は待機状態になる

キューが空っぽの状態でConsumeすると、待機状態になります。タイムアウトはコンポーネントから設定ができます。

タイムアウトの設定

タイムアウトを超えた場合はエラーとなりますので、例外処理を仕込んでおきましょう。

メッセージが取得できなかったらエラー
MuleSoft
スポンサーリンク

コメント