0

データを「待機」する必要がある ejb の最適なソリューションは何ですか? データベーステーブルに移動していくつかのデータをチェックするejbがあります。データがそこにない場合は、x秒待ってから再度チェックする必要があります。Thread.sleep/Thread.wait などの操作は、Java EE 仕様では推奨されていません。しかし、この問題には現実的な解決策が必要です。他の読書では、タイマーまたは何かを開始する必要があることが示唆されていますが、このデータが利用可能になるまで要求元の呼び出しをブロックする必要があり、スケジュールまたはタイマーのソリューションが不要になります。他のアイデアはありますか?

4

1 に答える 1

2

これには EJB タイマーを使用できますが、正直なところ、データの「ポーリング」はリソースの無駄遣いです。より良い方法は、JMS を使用することです。データのプロデューサーにデータをデータベースに入れてもらい、キューにメッセージを入れてもらいます。メッセージとデータベースの書き込みの両方が、同じトランザクションで一緒にコミットされます。あとは、メッセージが到着したときにトリガーするリスナーを JMS キューに配置するだけです。そして、「ポーリングは必要ありません」。

具体的な例が必要な場合は、回答を少し拡張できることをお知らせください。

于 2013-04-23T20:09:19.783 に答える