0

@Scheduleアノテーションを使用してcronのような方法でエンタープライズロジックを実行するEJBがあります。

JBoss7.1finalを使用しています。

問題は、このメソッドがAWS SQSサービスからのメッセージを消費していることです。そのAPIでは、一度に最大10個のメッセージをフェッチするという制限があります。これにより、多くのメッセージがSQSに追加されますが、十分な速度で消費されません。したがって、私が質問したいのは、プールを作成し、2つまたは3つのEJBがSQSからのメッセージを同時に処理する方法があるかどうかです。

4

1 に答える 1

0

いくつかの明確化のためにコメントを追加しましたが、とにかく、あなたのケースでうまくいくかもしれないアイデアがあります.

  1. スケジュールされた EJB を使用して、SQS キューからメッセージを順次消費します。フェッチできるメッセージの数には明らかに制限があるため、SQS サービスを複数回呼び出す必要がある場合があります。ここではメッセージを処理せ、「中間」JMS キューに送信するだけです。

  2. 通常のメッセージ駆動型 Bean (MDB) を使用して、「中間」JMS キュー内のメッセージを処理します。プールのサイズなどを指定して、アプリに任せることができます。サーバーが負荷を管理します。JMS メッセージの処理は並行して行われます。

これは EJB 仕様に準拠し、比較的クリーンです。ただし、技術的な複雑さがわずかに追加されています。また、元の問題は、SQS メッセージの単なる読み取りではなく、SQS メッセージの順次処理が根本的な問題であると想定しています。

于 2012-06-19T11:18:18.963 に答える