我正在Quartz中创建我的第一个计划任务。对于我的项目,我需要将数据存储在数据库中。
为了启动调度程序,我使用:
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
我创建了一个简单的工作来测试调度
package com.atlascopco.framework.schedule.jobs;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class StoredProcedureJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("test");
}
}
在我的数据库中,我手动创建了一些记录。 JOB_DETAILS
SCHED_NAME JOB_NAME JOB_GROUP DESCRIPTION JOB_CLASS_NAME IS_DURABLE IS_NONCONCURRENT IS_UPDATE_DATA REQUESTS_RECOVERY JOB_DATA
test test test test com.atlascopco.framework.schedule.jobs.StoredProcedureJob 1 1 1 1 NULL
TRIGGERS
SCHED_NAME TRIGGER_NAME TRIGGER_GROUP JOB_NAME JOB_GROUP DESCRIPTION NEXT_FIRE_TIME PREV_FIRE_TIME PRIORITY TRIGGER_STATE TRIGGER_TYPE START_TIME END_TIME CALENDAR_NAME MISFIRE_INSTR JOB_DATA
test test test test test test 1477559872000 NULL NULL WAITING SIMPLE 1477559872000 NULL NULL NULL NULL
SIMPLE_TRIGGERS
SCHED_NAME TRIGGER_NAME TRIGGER_GROUP REPEAT_COUNT REPEAT_INTERVAL TIMES_TRIGGERED
test test test 10 1000 0
现在,当我启动应用程序时,调度程序启动。在常规时间,调度程序的日志正在添加新行(没有错误仅调试消息)。我开始这份工作有什么不对?
当我正在进行scheduler.getTriggerGroupNames()
时,列表为空。
答案 0 :(得分:0)
找到一种使用Quartz
的API保存数据库中的作业的方法JobDetail jobDetail = JobBuilder.newJob(StoredProcedureJob.class)
.withIdentity("dataJob", "dataJobGroup")
.storeDurably(true)
.requestRecovery(true)
.build();
SimpleTrigger trigger = (SimpleTrigger) newTrigger()
.withIdentity("trigger1", "dataJobGroup")
.startNow()
.withSchedule(
simpleSchedule().withIntervalInSeconds(1)
.repeatForever()).build();
scheduler.scheduleJob(jobDetail, trigger);