【问题标题】:Azure Function and CRON againAzure Function 和 CRON 再次
【发布时间】:2019-10-21 02:38:29
【问题描述】:

我想每天 23:00 打电话。

我尝试以下方法:

        [TimerTrigger("0 23 * * *")]TimerInfo myTimer,

但我得到一个错误:

Microsoft.Azure.WebJobs.Host:索引方法错误 'FunctionAppCallEfsFuelCards.Run'。 Microsoft.Azure.WebJobs.Extensions: 计划表达式“0 23 * * *”未被识别为有效 cron 表达式或时间跨度字符串。

怎么了?

【问题讨论】:

  • 好像少了一个参数(应该是{second} {minute} {hour} {day} {month} {day-of-week}
  • 应该是 [TimerTrigger("0 0 23 * * *")]TimerInfo myTimer,

标签: azure cron azure-functions


【解决方案1】:

正如@DavidMakogon 在评论中所说,只是作为答案总结,正确的crontab 表达式应该是Azure Functions 的Timer Trigger 中的{second} {minute} {hour} {day} {month} {day-of-week}

官方文档Timer trigger for Azure FunctionsNCRONTAB expressions部分进行了说明,如下图。

【讨论】:

    【解决方案2】:

    用于计划 WebJob 的主要格式

    • cron 表达式由 6 个字段组成:{second} {minute} {hour} {day} {month} {星期几}。
    • 支持的运算符有:, - * /

    • 每个字段可以有一个特定的值 (1)、一个范围 (1-10)、一组 值 (1,2,3),所有值 (),区间值 (/2 == 0,2,4,6,...) 或这些 (1,5-10) 的混合。

    • 每个值代表一个时间点,例如:“5 * * * * *” - 指每分钟的第 5 秒,根据上述规则 你的 cron 表达式会导致这个错误

      使用 [TimerTrigger("0 0 23 * * ? *")]TimerInfo myTimer,

    您也可以使用 this 验证您的 cron 表达式

    【讨论】:

    • 我尝试运行一个包含 7 个字符的计时器触发器,但每次它都会引发错误。似乎不允许超过 6 个。知道为什么吗?
    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多