Ответ 1
Я, наконец, получил его для работы с этим выражением cron 0 0 0 * * *
но мне нужно было установить часовой пояс в классе планировщика, как это. @Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")
Я пытаюсь запланировать задачу на весну, которая должна выполняться каждый день в полночь. Я следовал официальному руководству Spring и создал класс планировщика, как показано ниже:
@Component
public class OverduePaymentScheduler {
@Scheduled(cron = "0 0 0 * * *")
public void trackOverduePayments() {
System.out.println("Scheduled task running");
}
}
Однако задача не запускается, когда часы бьют 12:00. Я получил выражение cron из документации по кварцевому планировщику по этой ссылке.
Планировщик выполняется нормально, если я изменяю выражение cron на "*/10 * * * * *", которое выполняется каждые десять секунд.
Так что я делаю не так?
Я, наконец, получил его для работы с этим выражением cron 0 0 0 * * *
но мне нужно было установить часовой пояс в классе планировщика, как это. @Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")
Это допустимые форматы для выражений cron:
0 0 * * * *
= начало каждого часа каждого дня.*/10 * * * * *
= каждые десять секунд.0 0 8-10 * * *
= 8, 9 и 10 часов каждого дня.0 0 6,19 * * *
= 6:00 и 19:00 каждый день.0 0/30 8-10 * * *
= 8:00, 8:30, 9:00, 9:30, 10:00 и 10:30 каждый день.0 0 9-17 * * MON-FRI
= в рабочие часы с девяти до пяти0 0 0 25 12?
= каждый Рождество в полночьШаблон является:
second, minute, hour, day, month, weekday
Итак, ваш ответ:
0 0 0 * * *
Пожалуйста, используйте ниже шаблон cron для 12:00 AM каждый день:
// at 12:00 AM every day
@Scheduled(cron="0 0 0 * * ?")
Я проверил ваш шаблон cron на этом сайте: http://www.cronmaker.com/.
Он говорит, что шаблон 0 0 0 * * *
неверен.
Вы можете использовать формат ниже, чтобы удовлетворить ваши требования:
0 0 23 * * *
Так как часы начинаются с 0 до 23 для кварцевой конфигурации. Вы можете обратиться по этой ссылке для получения дополнительной информации.
его (ум-ночь каждый день)
0 0 0 * * *