我在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