我正試圖找到一個正確的方式來安排每週(特定的一天)的工作,使用石英調度。 我還需要打印cron作業的描述,因此我決定使用 CronExpressionDescriptor.getDescription()以使非程序員能夠讀取表達式的含義。CronExpressionDescriptor和QuartzScheduler的兼容性
但是,當我使用cronExpression - 0 15 3? * 2
CronExpressionDescriptor.getDescription()返回凌晨3:15,只有週二
但調用
trigger = newTrigger().withIdentity(triggerName, group.getGroupName()).withSchedule(cronSchedule(executionTime)).forJob(job.getKey()).build();
Date date = scheduler.scheduleJob(job, trigger);
時的日期將是週一(星期一Mar 03 03:15:00 EST 2015)
我現在的解決方法是給我們e
int dayOfWeek = (Integer.valueOf(cronexpression.split(" ")[5])%7);
trigger = newTrigger().withIdentity(triggerName, group.getGroupName()).withSchedule(CronScheduleBuilder.weeklyOnDayAndHourAndMinute(dayOfWeek, hour, minute)).forJob(job.getKey()).build();
但當然,我不喜歡這種解決方案,因爲它是斑駁而醜陋的。 所以我的問題是:
有石英和CronExpressionDescriptor之間的關係? 你知道其他的框架,它能夠返回cronExpression字符串的人類表示。
你有更好的解決方案嗎?
感謝,