[英]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.