繁体   English   中英

Java石英突然停止发射事件

[英]Java quartz suddenly stop firing events

我使用石英来安排每日批处理过程,并且它在开始的第一天运行,但是发生了将事件触发2天左右的情况,然后停止了执行任务。

我使用的Java版本是:Java版本“ 1.7.0_25”石英版本(在POM中):org.quartz-scheduler石英2.2.1

这是我的代码:

批处理的主要功能:

public static void main(String[] args) {

    try {

        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        JobDetail job = JobBuilder.newJob(MyJobClass.class).withIdentity("MyJobClass", "group1").build(); 
        Trigger trigger = TriggerBuilder
                .newTrigger()
                .withIdentity("MyTrigger", "group1") 
                .withSchedule(
                    SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInHours(24).repeatForever())
                .startAt(sd.parse("2015-01-12 07:30:00")) 
                .build();

        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);

        String strLog="Batch initiated on " + new Date();
        System.out.println(strLog);
        log.info(strLog);

    } catch (Exception e) {
        //log error
    } 


}    

这是我在工作中的execute方法:

public void execute(JobExecutionContext arg0) throws JobExecutionException {
    generateBatchProcess();
}

public void generateBatchProcess(){

   try{
      //do lots of interesting stuff, calling MyBatis Daos, generating excel files and sending an email
   }catch (Exception e){
      //log error
   }
}

有人知道为什么会这样吗? 这与垃圾收集器有关吗?

我很ham愧地承认这只是一个“ BadProgrammerException”,因为我在try ... catch块之外调用了一个数据库连接,而这之前我从未见过,所以问题是我没有到达数据库,并且我无法通过日志信息弄清楚(数据库连接是间歇性的)。 找到这些信息后,我更正了数据库问题,并且石英工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM