Я создаю функциональность, которая позволит пользователям планировать повторяющиеся и неповторяющиеся задачи. Мне нужно сохранить эти расписания в базе данных и читать активные расписания один раз в день, чтобы увидеть, должны ли они запускаться сегодня.
Я использую Spring/Java. Боюсь, если я сам напишу эту логику, ее будет недостаточно и она будет не такой эффективной, как могла бы быть.
Необходимые настройки расписания аналогичны календарю Outlook, за исключением того, что они касаются времени. (вероятно, проще открыть повторяющееся собрание Outlook, чем прочитать мое исполнение):
- Фактическая дата
- каждый N-й день, исходя из даты начала
- каждый N-й рабочий день, начиная с даты начала
- каждую N-ю неделю по принципу «один ко многим» (воскресенье, понедельник, вторник и т. д.) в зависимости от даты начала
- (1-й, 2-й, 3-й, 4-й, последний) (Вс, Пн, Вт и т. д.) каждого N-го месяца на основе даты начала
- день X каждого месяца y, исходя из даты начала
- каждый (январь, февраль, март, апрель и т. д.) N-й день каждого года
- каждый (1-й, 2-й, 3-й, 4-й, последний) (Вс, Пн, Вт и т. д.) из (янв, февраль, март, апрель и т. д.)
Каков простой шаблон для реализации этого? Спасибо за любую помощь
ScheduledExecutorService
, либо в библиотекуQuartz
. - person SnakeDoc   schedule 15.05.2014