7

実際には、次の流れがあります。

  1. ユーザーが「巨大な操作」ボタンをクリックします。
  2. RESTful サービスを呼び出します。
  3. 残りのサービスは、EJB である HugeOpServiceBean を呼び出します。
  4. この EJB は JMS キューに HugeOperation を実行するよう指示します。
  5. この HugeOperation には 2 つ以上の実装がある可能性があるため、リッスンしているすべての MDBean が実行されます (つまり、別の .ear にある可能性があります)。

これらの MDBean の「ステータス」を取得できるようにするために、皆さんがどのように行っているか、または私に提案しているかを聞きたいと思います。

基本的に、各 MDBean はいくつかのオブジェクト タイプのリストでいくつかのメソッドを実行するため、完了したパーセンテージを計算するのは簡単なはずです。サービス。

前もって感謝します。

4

2 に答える 2

6

これを処理する RESTful な方法は次のとおりです。

  1. 最初の呼び出しの後、クライアントに HTTP 202 ステータス コード 'Accepted' を返し、要求が成功したが、さらに処理が必要であることを示します。クライアントが「ジョブ」のステータスを照会するために使用できる応答で URI を提供することもできます。
  2. クライアントがジョブのステータスを照会するために呼び出すことができるエンドポイントを実装します。
  3. 操作が完了すると、上記の 2) のエンドポイントは、操作によって作成されたメイン エンティティの実際の URI への永続的なリダイレクトを発行します。
于 2013-01-21T20:15:55.727 に答える
2

MDB の消費と処理は処理されるため、オール オア ナッシングです。進行状況の表示は複雑になり、進行状況を更新するにはサブトランザクションが必要になります。EJB 内の複数の JMS メッセージに作業をチャンクし、後で正常に消費された JMS メッセージの進行状況を監視することをお勧めします。エンタープライズ統合のパターンを見る

于 2013-01-21T20:24:47.277 に答える