0

キューに入れられたメッセージを消費する複数のスレッドによる後で処理するために、Oracle キューを使用してメッセージをキューに格納する Java アプリケーションがあります。このキュー内のメッセージは相互に関連している可能性があるため、アプリケーションのビジネス ロジックに基づいて特定の順序で処理する必要があります。基本的に、キュー内の別のメッセージ B が完全に処理されていない限り、1 つのメッセージ A のデキューが保留されるようにしたいと考えています。ここに表示される Oracle AQ によって提供される唯一の武器は、Delay および Priority パラメータです。ただし、これらを使用して上記のシナリオを実現することはできません。これは、関連する 2 つのメッセージを同時にデキューして処理できる状況があるためです。メッセージの高度な処理順序を確立するのに役立つツールはありますか?

4

1 に答える 1

0

キューを使用してこれらのメッセージを並べ替えるのは得策ではないという結論に達しました。カスタムの非常に特殊なデキュー戦略が必要になるためです。これは、複雑さとおそらくパフォーマンスの両面で非常に悪臭を放ちます。また、キューを使用して通信プロトコルの問題を修正しようとします。これはアプリケーション固有であるため、アプリケーション自体で処理を見つける必要があります。代わりに、アプリケーション/通信プロトコルは、順序付けの問題を処理するのに十分な耐性を持つ必要があります。

于 2016-07-08T19:44:43.970 に答える