Я пытаюсь реплицировать cron Linux в Spring с расписанием cron.
Я хочу запускать свою задачу каждые 10 секунд, а ниже приведен пример кода.
@Scheduled(cron = "0/10 * * * * *")
public void task() throws InterruptedException {
System.out.println("Scheduler started!!!" + new Date());
Thread.sleep(60000);
}
Я специально добавил Thread.sleep(60000)
, потому что моя задача может занять больше времени.
Что я ожидал от приведенного выше кода, так это то, что задача будет выполняться каждые 10 секунд, но это не так. Задержка в выполнении следующего задания составила 1 мин 10 с.
Ниже вывод, который я получил:
Scheduler started!!!Tue May 08 21:15:50 GMT+05:30 2018
Scheduler started!!!Tue May 08 21:17:00 GMT+05:30 2018
То, что я вижу, это поведение точно такое же, как у * java 1014 *.
Как выражение cron весны отличается от таймера Java? Есть ли вероятность того, что он может работать как Linux cron. Значит, хотя предыдущая задача была запущена, запустите новую задачу?