Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java quartz突然停止触发事件_Java_Batch File_Quartz Scheduler - Fatal编程技术网

Java quartz突然停止触发事件

Java quartz突然停止触发事件,java,batch-file,quartz-scheduler,Java,Batch File,Quartz Scheduler,我正在使用quartz计划一个每日批处理过程,它在第一天运行,但触发事件大约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-d

我正在使用quartz计划一个每日批处理过程,它在第一天运行,但触发事件大约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
    } 


}    
下面是我在作业中的执行方法:

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
   }
}

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

我很惭愧地承认这只是一个“BadProgrammerException”,因为我在try…catch块之外调用了一个数据库连接,这是我以前没有看到过的,所以问题是我没有访问数据库,我无法通过日志信息找到它(数据库连接是间歇性的)。在我发现这一点后,我纠正了数据库问题,quartz工作正常。

您能确认是否记录了任何错误吗?这正是问题所在。我没有看到任何错误。据我所知,事件没有被触发。回顾您的代码,您是否考虑过使用catch(Throwable t)而不是catch(Exception e)?可以抛出的错误不是异常。我不认为我能提供更多帮助。你解决了这个问题吗?我面临着同样的问题。作业随机停止触发。我对此感到羞愧,因为这是一个“糟糕的程序员异常”,我在try块外调用了一个我以前从未见过的数据库连接,然后我可以看到日志错误并解决它。我担心,如果这不是你的情况,那么我需要你的代码来帮助你。