Нахождение В последний раз Запущенного времени с помощью Выражения Крона в Java

Есть ли путь в Java для нахождения "Прошлого Запущенного Времени" от Выражения Крона.

Например, Если теперь = 25 апреля 2010 22:00, выражение крона "0 15 10? * *" (кварц) должен возвратить меня 25 апреля 2010 10:15

Примечание: 1) я не забочусь, используем ли мы стандартные выражения крона (как Unix и Кварц) или менее популярные, если они могут выбрать меня корректное "Прошлое Запущенное Время", 2) Также это не буквально "Прошлый раз Огня", поскольку триггер не мог стрелять, но логически должен быть способ сказать, когда это (имел бы), запущенный в последний раз.

8
задан a-sak 27 April 2010 в 02:20
поделиться

2 ответа

Во-первых, мне неизвестна существующая библиотека, которая поддерживает это. Quartz может, но стандартные библиотеки классов Java, конечно же, этого не делают.

Во-вторых, строго говоря, то, о чем вы просите изначально, невозможно. Лучшее, что может сказать вам библиотека, - это то, что выражение cron должно было запускаться или должно было запускаться . Единственное, что может (теоретически) сказать вам, когда в последний раз действительно сработало выражение cron, - это сам экземпляр планировщика.

3
ответ дан 5 December 2019 в 20:14
поделиться

Похоже, что в Quartz есть некоторая библиотека для поддержки выражений cron.

См. Javadoc для класса CronExpression , который имеет метод под названием getTimeBefore . То есть,

CronExpression cron = new CronExpression("0 15 10 ? * *");
Date today = new Date();
Date previousExecution = cron.getTimeBefore(today);

Это может зависеть от версии Quartz, работает ли это.

Если посмотреть на последний исходный код (версия 2.1.0 на момент написания), этот метод не был реализован и всегда возвращает значение null.

2
ответ дан 5 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: