问题描述
我试图立即执行Java程序,然后使用我在代码中定义的job(scheduler)执行程序,现在我的调度程序每天从9:00 AM到9:00 PM执行。 我该怎么办?
这是我的Java代码
public class FirstMainClassJob {
private static Logger log = Logger.getLogger(FirstMainClassJob.class);
static HelperUtl helperUtl = new HelperUtl();
// Fire between 09AM and 09PM every day
public static Trigger fireBetween9To9EveryDay() throws ParseException,SchedulerException,IOException {
String jobTime=helperUtl.getProperty("CRON_JOB_TIME");
log.info("Application running time is "+jobTime);
JobDetail job1 = JobBuilder.newJob(GoogleDriveApiQuickstart.class).withIdentity("fireBetween9To9EveryDay","group1").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("fireBetween9To9EveryDay","group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 "+jobTime+" * * ?")).build();
Scheduler scheduler1 = new StdSchedulerFactory().getScheduler();
scheduler1.start();
scheduler1.scheduleJob(job1,trigger);
return trigger;
}
public static void main(String[] args) throws ParseException,IOException {
FirstMainClassJob.fireBetween9To9EveryDay();
}
解决方法
您可以使用
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("fireOnceAtStart","group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(1)).build();
一次执行一次。