1

EJB クラスの 1 つが外部 API を呼び出しています。しばらくしてから失敗した場合は再試行してください。スレッドを管理するのは得策ではありません (Thread.sleep(1000)) は推奨されません。EJB2 でプロセスを一定時間遅延/中断する方法を誰か教えてください。ありがとう。

4

2 に答える 2

0

スレッドが成功した場合、1秒間複数回スリープするという問題は、不要な待機時間であると思います。

sleep の代わりに、join を使用してみてください。

join(5000)

スレッドが終了するまで最大 5 秒待機します。早期に終了すると、実行が再開されます。早く終了しない場合、実行は 5 秒後に再開されます。

sleep メソッドはポーリング技術を使用しますが、join は変更された割り込みスキームを使用します。

于 2012-05-31T18:53:08.573 に答える
0

回避策として、障害が発生した場合は、適切なタイムアウト期間 (この場合は遅延期間) を持つタイマーを作成できます。

タイムアウト メソッドでは、さらに外部 API を呼び出す EJB を再度呼び出すことができます。

于 2012-05-31T19:16:37.707 に答える