Azure WebJob不能接受有效的CRON表达式?

23
我使用crontab.guru创建了一个非常简单的CRON表达式,以期望每天在凌晨3点15分执行,这是结果:15 3 * * *

Crontab.guru

不幸的是,在Azure Portal中,这种方式不起作用,但如果我在表达式前加上一个前导0,例如0 15 3 * * *,Azure将接受它,而crontab.guru会告诉我它是错误的。根据crontab.guru的规范,格式为:分钟 小时 日期 月份 星期几

Azure does not accept my CRON expression

Azure accepts the expression with a leading zero

以下是需要翻译的内容:

  • 为什么会出现这种差异?
  • 是不是微软一如既往地采用具有前导零的专有实现方式?
  • 如果标准是分钟 小时 日期 月份 星期,那么前导零表示什么意思?
1个回答

26
请查看文档:

NCRONTAB 表达式由 6 个字段组成:{秒} {分} {时} {日} {月} {星期几}。CRON 表达式只有 5 个字段,没有秒。

所以第一个 0 描述的是秒数。

*    *    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    │
│    │    │    │    │    └───── day of week (0 - 7) (0 or 7 are Sunday, or    use names)
│    │    │    │    └────────── month (1 - 12)
│    │    │    └─────────────── day of month (1 - 31)
│    |    └──────────────────── hour (0 - 23)
│    └───────────────────────── min (0 - 59)
└────────────────────────────── second(0 - 59)

谢谢!我意识到它是秒数过了一会儿,但为什么在不同的地方它会有所不同呢?有不同的标准吗?Transitional/Strict? :) - Marcus
是的,有不同的标准。例如,另一个 cronmaker 假设秒数是第一位:http://www.cronmaker.com/ - Ravit D
请使用与webjobs相同的规范,使用以下链接来查看cron表达式描述:http://cronexpressiondescriptor.azurewebsites.net/ - Ravit D
1
此页面有更好的文档:https://learn.microsoft.com/en-au/azure/azure-functions/functions-bindings-timer#cron-expressions - ajbeaven
2
第二个文档页面已经最近更新(我的PR被接受了,耶),明确说明这些是6部分的NCRONTAB表达式,而不是通常的5部分CRON表达式。我已经要求以同样的方式纠正第一个链接。如果你回答中的片段来自这两个页面之一,你可能需要更新它以匹配任何文档更新。 - StingyJack
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接