Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
EJB クラスの 1 つが外部 API を呼び出しています。しばらくしてから失敗した場合は再試行してください。スレッドを管理するのは得策ではありません (Thread.sleep(1000)) は推奨されません。EJB2 でプロセスを一定時間遅延/中断する方法を誰か教えてください。ありがとう。
スレッドが成功した場合、1秒間複数回スリープするという問題は、不要な待機時間であると思います。
sleep の代わりに、join を使用してみてください。
join(5000)
スレッドが終了するまで最大 5 秒待機します。早期に終了すると、実行が再開されます。早く終了しない場合、実行は 5 秒後に再開されます。
sleep メソッドはポーリング技術を使用しますが、join は変更された割り込みスキームを使用します。
回避策として、障害が発生した場合は、適切なタイムアウト期間 (この場合は遅延期間) を持つタイマーを作成できます。
タイムアウト メソッドでは、さらに外部 API を呼び出す EJB を再度呼び出すことができます。