Запланируйте периодическое задание на Java с отдельными задержками для успеха и неудачи - PullRequest
0 голосов
/ 16 июня 2019

Мне нужна программа на Java, которая запускает определенную работу каждые 5 минут.

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

Как это можно сделать аккуратно (например, используя ScheduledThreadPoolExecutor или TimerTask)?

...