问题描述
我有以下问题:
我们创建了Scheduler Task。 此任务每10秒在数据库中查找一次是否有可用的作业。如果是,它将在任务期间执行很长时间,并且正在将值写入数据库。 目前,该工作正常,但有时它突然停止,我们需要重新启动Glassfish服务器以再次触发它。
我的问题:我们可以检测到这些类型的停止,并且可以重新启动该作业吗?或者,我们可以为此工作创建一个健康点,并检查状态是否为“健康”,“工作”且未卡死。 并且当由于某种原因卡住或停止作业时,请检测到此情况并在可能的情况下重新启动作业。
我们有哪些可用选项? 我们在这里有什么最佳实践吗?
谢谢您和亲切的问候, 雷神92
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
@Startup
@EJB(name = "java:global/Calculation",beanInterface = Calculation.class)
public class Calculation implements Serializable {
@Schedule(hour = "*",minute = "*",second = "*/10",info = "Every 10 seconds timer",)
public void automaticallyScheduled() {
try {
longOperationsIntoDatabase();
} catch (Exception e) {
LOGGER.severe("Exception");
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)