我在Java中使用Quartz Scheduler来运行cron作业。这是我第一次使用这个框架来运行cron作业,所以我有一些困惑。如何在Java中使用Quartz Scheduler框架来运行cron作业?
我正在关注这个tutorial以更好地理解如何使用Quartz框架。
我每个月都试图每周运行JobA
,所以我开始与基本的例子 -
这里是我的榜样,我已经这么远。
public class JobA implements Job {
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Job A is runing");
// print whether it is week or month
}
}
下面是我CronTriggerExample作业运行该时间表
public class CronTriggerExample {
public static void main(String[] args) throws Exception {
JobKey jobKeyA = new JobKey("jobA", "group1");
JobDetail jobA = JobBuilder.newJob(JobA.class).withIdentity(jobKeyA)
.build();
Trigger trigger1 = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("5 8 * * 6 ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(jobA, trigger1);
}
}
问题陈述: -
我不知道如何使用上述每周,每月运行职吧码。在我的情况下,一个星期和一个月,我的cron标签项是什么?我不想在晚上8点到凌晨5点之间运行任何工作,并且任何随机日都很好。
如果JobA每周运行一次,则应打印出one-week
和report_week
。但是如果JobA每个月都在运行,那么它应该输出one-month
和report_one_month
,所以下一个问题是 - 有什么办法,我们可以在运行时将参数传递给JobA?
您可以参数化你的'Job'使用'JobDataMap':http://www.quartz-scheduler.org/documentation/quartz-2.x/examples/Example4.html – 2016-10-13 12:40:37