标签: java ejb
其中一个EJB类正在调用外部API&如果在延迟一段时间后出现故障,我想重试。由于不建议管理线程不是一个好主意(Thread.sleep(1000)),有人可以告诉我如何在EJB2中延迟/暂停该过程一段时间吗?感谢。
答案 0 :(得分:0)
我认为你多次睡眠1秒的问题是线程成功时不必要的等待时间。
而不是睡觉,你可以尝试使用连接。
join(5000)
将等待最多5秒钟的线程完成。如果它提前完成,您的执行将恢复。如果它没有提前完成,你的执行将在5秒后恢复。
sleep方法使用polling技术,而join使用修改后的interrupt方案。
答案 1 :(得分:0)
作为一种解决方法,如果出现故障,那么您可以创建一个具有适当超时持续时间的计时器,在这种情况下将是延迟时间。
在超时方法中,您可以再次调用EJB,这将进一步调用外部API。