永远不会执行的 Azure 函数作业

Isu*_*uru 1 cron azure azure-functions

我正在尝试填充一个 CRON 表达式,该表达式将假装永远不会执行(至少在此生期间不会)。

我经历了这个问题 /sf/ask/582701451/

但是该问题中的每个表达式都给出了一个例外 Microsoft.Azure.WebJobs.Host: Error indexing method 'Cleanup'. Microsoft.Azure.WebJobs.Extensions: The schedule expression '0 0 5 31 2 ?' was not recognized as a valid cron expression or timespan string.

有哪些可能的表达方式可以满足上述对 Azure Functions 的期望?

谢谢你。

小智 14

您无法根据算法设置“永不”,但闰年(星期六为 29 日)会产生 28 年的差距。

0 0 0 2月29日 星期六

因为这种情况第一次再次发生是在 2048 年。

够好了?


Geo*_*hen 5

请检查 Azure CRON 表达式,它是:

{second} {minute} {hour} {day} {month} {day-of-week}
Run Code Online (Sandbox Code Playgroud)

它使用 NCronTab 库来解释 CRON 表达式。在github页面中,您可以找到 value 列可以有一个*或由逗号分隔的元素列表。这意味着它不支持?.

所以只要改变你的表达方式,0 0 5 31 2 *它就会被批准。如果你的功能没有运行,你可以禁用它。您可以参考本教程:如何禁用 Azure Functions 中的函数

更新:

由于Function会计算Timer来获取函数运行时间,2/30和2/31永远不会到来,那么就会循环计算,年份会一直增加,直到超过9999的限制。在这种情况下函数将发送异常。

  • @Isuru,这是因为 TimerTrigger 函数将使用 cron 表达式计算下一次运行时间,而 2/31 或 2/20 将永远不会运行,然后它将循环计算并且年份数将超出限制。 (2认同)