Самый эффективный способ преобразования календаря расписания в правило расписания crontab - PullRequest
0 голосов
/ 06 марта 2019

У меня есть календарь расписания, подобный этому

введите описание изображения здесь

(область Буле выбирается время)

и он вернет строку json, такую ​​как

 {"val": [
  { "day": 1, "start_at": 0, "duration": 4},
  { "day": 1, "start_at": 5, "duration": 6},
  { "day": 1, "start_at": 19, "duration": 3},
  { "day": 2, "start_at": 0, "duration": 2 },
  { "day": 2, "start_at": 4, "duration": 1 },
  { "day": 2, "start_at": 6, "duration": 1 },
  { "day": 2, "start_at": 9, "duration": 3 },
  { "day": 3, "start_at":0, "duration": 23}
]}

затем мне нужно преобразовать его в команду расписания Crontab, чтобы выполнить какое-то задание расписания.

как

* [0,1,3,4,7,8] * * Mon 
* [4,6,7] * * Tue
......

Но этот способ сгенерирует 7 правил расписания и 7 задач расписания, я думаю, это неэффективно.

Я хочу знать, возможно ли преобразовать его в одно правило расписания и создать только одну задачу расписания?

Или, может быть, какие-то инструменты или хороший способ могут помочь преобразовать календарь расписания в задачи расписания напрямую без команды Crontab.

1 Ответ

0 голосов
/ 08 марта 2019

Исходя из вашей картинки, у вас нет ничего, что можно «оптимизировать».Вы должны иметь запись cron для каждого события.И используя синтаксис, такой как * 2 * * * command, вы запускаете команду каждую минуту.

И правильный формат для cron:

* * * * * command

, где 1-й * - минуты, секунды -часы, третьи для дней месяца, четвертые для месяцев и последние для дней недели

...