Java EE Schedule Job长期操作最佳实践

问题描述

我有以下问题:

我们创建了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 (将#修改为@)