EJB 2中的时间延迟

时间:2012-05-31 18:32:25

标签: java ejb

其中一个EJB类正在调用外部API&如果在延迟一段时间后出现故障,我想重试。由于不建议管理线程不是一个好主意(Thread.sleep(1000)),有人可以告诉我如何在EJB2中延迟/暂停该过程一段时间吗?感谢。

2 个答案:

答案 0 :(得分:0)

我认为你多次睡眠1秒的问题是线程成功时不必要的等待时间。

而不是睡觉,你可以尝试使用连接。

join(5000)

将等待最多5秒钟的线程完成。如果它提前完成,您的执行将恢复。如果它没有提前完成,你的执行将在5秒后恢复。

sleep方法使用polling技术,而join使用修改后的interrupt方案。

答案 1 :(得分:0)

作为一种解决方法,如果出现故障,那么您可以创建一个具有适当超时持续时间的计时器,在这种情况下将是延迟时间。

在超时方法中,您可以再次调用EJB,这将进一步调用外部API。