Запустите задание Quartz Scheduler с указанием даты начала, окончания и времени.
Я использую Quartz-Scheduler для повторяющихся задач, но столкнулся с проблемой. На моей стороне сервера мой пользователь хочет указать некоторый диапазон дат, напримерОт 2013-09-27
в 09:00 AM - 12:00 PM
в 2013-09-30
Объяснение:
Запустить работу от2013-09-27
в2013-09-30
но только между09:00 AM - 12:00 PM
Я сталкиваюсь с проблемой при написании выражения Cron для него, более того, мой пользователь не является техническим, поэтому мой пользователь хочет, чтобы я автоматически создавал выражение Cron из обеих значений отметок времени.
Пожалуйста, помогите мне. Дайте мне знать, если есть другой способ.
Я видел много ресурсов в Google, но все еще могуне могу найти ничего
Ссылки:
http://quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-05
Позволяет ли выражение cron в unix / linux указывать точные даты начала и окончания
Обновить
Я написал один, но этоне работает
|------------------------------------------------------------------|
| Seconds | Minutes | Hours | DayOfMonth | Month | DayOfWeek | Year|
| | | | | | | |
| 0 | 0 | 9-12 | 27-30 | 9 | ? | 2013|
|------------------------------------------------------------------|
пытаясь отобразить2013-09-27
в2013-09-30
но только между09:00 AM - 12:00 PM
обновленный Я также попробовал его запустить с
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(NAME_TRIGGER_TASK_UPDATER, GROUP_TASK_TRIGGER)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 9-12 19-22 10 ? *")).build();
но это нене дает никаких ошибок и не входит в мой метод execute моей работы
cronSchedule("0 0 9-12 ? * ?") throws invalid schedule exception.
Код ниже запускает его без учета даты начала и окончания.
String startDateStr = "2013-09-27 00:00:00.0";
String endDateStr = "2013-09-31 00:00:00.0";
Date startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(startDateStr);
Date endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(endDateStr);
CronTrigger cronTrigger = newTrigger()
.withIdentity("trigger1", "testJob")
.startAt(startDate)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 9-12 * * ?"))
.endAt(endDate)
.build();