Создайте задачу, которая должна выполняться на определенной частоте, если клиент и сервер находятся в разных часовых поясах. - PullRequest
0 голосов
/ 13 ноября 2018

Я работаю над своим проектом в колледже, который позволяет пользователю создавать задачи, которые должны выполняться с разной частотой, и для этого мы используем Spring Cron Trigger.у меня мало сомнений и нужно разъяснить то же самое.

  1. Предположим, currentDate: 2018-11-13T13: 00: 00.000 + 05.30 (часовой пояс IST), и мы хотим запустить задачу через 10 мин.В случае запуска каждые n дней (2, 3, 4 ...), cron всегда генерирует следующую дату запуска из currentDate + 1., но для запуска каждый день (где n = 1) он начинается с currentDate.Не уверен, является ли это ожидаемым поведением или нет.
  2. Еженедельная частота: может работать несколько дней в неделю, и в настоящее время мы внедрили эту функцию для каждой недели, не знаю, как сгенерировать cron для двухнедельной и запустить n-недельный интервал.
  3. Ежемесячная частота: позволяет пользователю выбирать, какую неделю (первую, вторую, третью, четвертую и последнюю) и какой день этой недели.Например: если пользователь выбирает первую неделю и выбирает день в качестве WED, то задача должна запускаться каждый месяц для первого WED, при этом генерируя cron, я предварительно определяю диапазон дат, т.е. первую неделю (1-7), вторую неделю (8-15), потому чтов большинстве случаев первый WED всегда падает между 1-7, но обнаруживается много исключений.
  4. Какой часовой пояс (клиент, сервер или UTC) предпочтителен для генерации выражения cron для поля минут и часов.на самом деле я использовал серверное время для этого, но проблема в том, что когда-то еженедельно и ежемесячная частота начинается со следующей даты, хотя она не пересекает текущее дневное время.и некоторое время добавляется 1 час для следующей даты запуска (не уверен из-за экономии дневного света, сервер в часовом поясе PST).этот сценарий работает нормально, если и клиент, и сервер находятся в одном часовом поясе.
...