将日程表日历转换为crontab日程表规则的最有效方法

时间:2019-03-06 09:39:51

标签: cron scheduled-tasks taskscheduler

我有这样的日程表日历

enter image description here

(蓝色区域已选择时间)

,它将返回

之类的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 schedule命令来执行一些调度任务。

喜欢

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

但是这种方式将生成7个调度规则并生成7个调度任务,我认为这样效率不高。

我想知道是否有可能将其转换为一个计划规则并仅生成一个计划任务?

或者也许有任何工具或好方法可以帮助转换计划日历以直接执行计划任务,而无需使用Crontab命令。

1 个答案:

答案 0 :(得分:0)

根据您的图片,您什么都无法“优化”。您需要为每个事件保存cron记录。并且使用* 2 * * * command之类的语法,每分钟运行一次命令。

cron的正确格式为:

* * * * * command

其中第一个*代表分钟,第二个代表小时,第三个代表一个月的天,第四个代表几个月的时间,最后一个星期的几天