0

Mule フローで、例外が発生したときにメッセージを「再試行キュー」に転送する例外ハンドラを追加したいと考えています。ただし、この再試行ロジックを自動的に実行したくありません。代わりに、エラーを確認してから、キュー内のすべてのメッセージを再試行するかどうかを決定できるように、通知を受け取りたいと思います。

すべての例外について通知を受け取りたくありません。15分ごとに実行され、この再試行キューにメッセージがあるかどうかを確認し、メッセージがある場合にのみ通知を送信するスケジュールされたジョブが必要です。

永続的な VM キューに現在いくつのメッセージがあるかを確認する方法はありますか?

4

1 に答える 1

1

デフォルトの VM キューの永続化メカニズムを使用し、VM コネクタの名前が であると仮定すると、次のvmConnectorことができます。

final String queueName = "retryQueue";
int messageCount = 0;

final VMConnector vmConnector = (VMConnector) muleContext.getRegistry()
    .lookupConnector("vmConnector");

for (final Serializable key : vmConnector.getQueueProfile().getObjectStore().allKeys())
{
    final QueueKey queueKey = (QueueKey) key;
    if (queueName.equals(queueKey.queueName))
    {
        messageCount++;
    }
}

System.out.printf("Queue %s has %d pending messages%n", queueName, messageCount);
于 2012-09-06T17:28:49.960 に答える