2017-11-25 27 views
-1

デキュー率をdinamicallyに設定できるJMSコンシューマを作成する必要があります(Nメッセージ/分など)。JMSフロー制御

メッセージドリブンBeanを使用する場合、プールサイズを制御できますが、クリーンな方法で待機時間を導入することはできません。スリープを使用できますが、それが良い考えであるかどうかはわかりません。

一部のASはJMSのフロー制御を許可しますが、JEE標準ではありません。 私はタイマーサービスを使うことができるかもしれませんが、この仮説では、とにかくASによって制御されるプールではなく、ejbプールを持つことはできません。

+0

あなたの問題について詳しく説明すると役に立ちます。誰かがより良い仕組みを考え出すことができるかもしれません。 JMSはあなたのソリューションの一部ですか、あなたの要件の1つですか? –

+0

JMSが必須です。 – user5919369

+0

私は、JMSキューに書き込むWSを使ってリクエストを処理する必要があります。このJMSキューからデキューするプロセスにはスロットル制御が必要です – user5919369

答えて

0

はい、この目的でタイマーサービスを使用できます。

あなたは間違いなく、プールされているステートレスBeanでタイマーサービスを使用できます。 https://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html

同じサーバー上にいくつかの並列処理やタイマーサービスのユーザーがいる場合は、十分な数のスレッドをタイマーサービススレッドプールに提供する必要があります。

+0

私は、タイマーがプールされていないと思っています。たとえば、10秒ごとに試行して、1タイマーを起動します。 – user5919369

+0

タイマーではなく、タイマースレッドプールとステートレスBeanプール。 1つのタイマーを始めるとどういう意味ですか? – user3714601