【发布时间】:2014-09-01 00:06:11
【问题描述】:
我在 Java 中使用 Quartz Scheduler 来运行 cron 作业。这是我第一次使用这个框架来运行 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);
}
}
问题陈述:-
我不确定如何使用上述代码每周和每月运行 JobA。就我而言,一周和一个月的 cron 选项卡条目将是什么?我不想在晚上 8 点到凌晨 5 点之间运行任何作业,任何随机的一天都可以。
如果 JobA 每周都在运行,那么它应该打印出 one-week 和 report_week。但是如果 JobA 每个月都在运行,那么它应该会打印出 one-month 和 report_one_month 所以下一个问题是 - 有什么办法可以在尝试运行时将参数传递给 JobA 吗?
【问题讨论】:
-
您可以使用
JobDataMap参数化您的Job:quartz-scheduler.org/documentation/quartz-2.x/examples/…
标签: java cron quartz-scheduler