2012-01-11 16 views
2

私はEJBのリストを持っていますが、それぞれ1分以上実行することができます。私はそれらを非同期的にループで実行したいと考えています。そして、10秒のタイムアウト後に、Future出力を使用して結果を確認してください。ExecutorServiceと非同期アノテーション

私が理解しているように、メソッド上のExecutorService@Asynchronous注釈は私にこの機能を与えることができます。

いつAsynchronous注釈を使用する必要がありますか。ExecutorServiceを使用する方が良いでしょうか?

私はEJBの機能に固執するだろうし、結果として、私はあなたのニーズに非常によく適しているようだ@Asynchronousアノテーションを使用します私のポイントからあなた

答えて

2

に感謝... ExecutorServiceのがために作られていますJava SEの世界であり、Java EE 6サーバーの内部で直接使用することはお勧めしません。

0

誰がEJBを呼び出していますか?サーブレットの場合は、非同期サーブレットのサポートを考慮する必要があります。

コンテナが非同期スレッド:コンテキストクラスローダ、java:namespaces、セキュリティなどにスレッドコンテキストを確立するため、(ThreadPoolExecutorを介して)独自のスレッドを作成するよりも、非同期EJBが役立ちます。アプリケーションサーバには、管理するスレッドのサービス品質(例えば、監視、タイムアウトなど)。

+0

私は残りのWebサービスからEJBを呼び出しています。ありがとう – lili