gpt4 book ai didi

java - 使用 Quartz 的每日作业调度程序

转载 作者:行者123 更新时间:2023-12-01 18:17:58 24 4
gpt4 key购买 nike

要求:

2015-02-11 至 2015-02-15/10:30 至 11:30 要执行的作业,当 11:30 时间到来时,它应该停止应该发生的作业,直到第 15 天到来。

这里我有 Quartz 1.8.6 lib,但无法为此获得正确的实现。请在这方面帮助我们。

示例程序:

        SimpleDateFormat    formateDate = new SimpleDateFormat("mm/DD/yyyy HH:mm");         
SchedulerFactory sf = new StdSchedulerFactory(AppConstants.QUARTZ_PROP_FILE);
log.info("------- invoking scheduler ----------------------");

System.out.println("------- invoking scheduler ----------------------");
Scheduler sched = sf.getScheduler();


java.util.Calendar startCal = java.util.Calendar.getInstance();
startCal.setTime(formateDate.parse(startDate));


java.util.Calendar endCal = java.util.Calendar.getInstance();
endCal.setTime(formateDate.parse(endDate));


System.out.println("start/end : " + startCal.getTime() + "/"+endCal.getTime());
DailyCalendar cal = new DailyCalendar(startTime, endTime);

// cal.setTimeRange(startTime, endTime);
cal.setInvertTimeRange(true);
Calendar quartzCal = cal;

sched.addCalendar("quartzCal", quartzCal, true, true);


//makeDailyTrigger(tgName, 12, 15)
JobDetail job = new JobDetail(jbName, "Admit", DemandStartJob.class);

SimpleTrigger trigger=new SimpleTrigger(tgName);
trigger.setStartTime(startCal.getTime());
trigger.setEndTime(endCal.getTime());
trigger.setCalendarName("quartzCal");
trigger.setJobName(jbName);
trigger.setJobGroup("Admit");
trigger.setRepeatCount(0);
trigger.setRepeatInterval(1);
sched.scheduleJob(trigger);
sched.start();

最佳答案

使用以下代码配置Quartz crontrigger

// define the job and tie it to our HelloJob class
JobDetail job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();

// Trigger the job to run now, and then repeat every 40 seconds
Trigger trigger = newTrigger()
.withIdentity("trigger3", "group1")
.withSchedule(cronSchedule("0 42 10 * * ?"))
.forJob(myJobKey)
.build();

// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);

这里“0 42 10 * * ?”是 cron 表达式
使用http://www.cronmaker.com/
制作一个 cron 表达式来表达您的需求

如果您想停止线程,还可以配置另一个作业,该作业在第一个作业 15 分钟后触发。

关于java - 使用 Quartz 的每日作业调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com