首页 > 解决方案 > Azure 函数 CRON 表达式每天无法工作一次

问题描述

我正在拔头发试图让它发挥作用。我发现有多个来源可以让函数每天运行一次。我尝试了以下项目:

0 0 * * *

0 0 0 * * *

0 0 23 * * *

我尝试了其他变体,但是每次运行时,它每天都会执行多次,而且没有一致性。例如,我正在使用“0 30 1 * * *”,认为它将在凌晨 1:30 运行一次,到目前为止,它已按以下时间间隔运行 4 次:

时间完全是零星的,只有一个是正确的时间,但另外三个是从哪里来的?我看过其他网站,格式似乎不一致。我见过很多使用 6 个字符,但我什至看到有些人使用 7 个字符(他们引用了这个站点Freeformatter.com),但如果我使用 7 个字符,该函数会引发错误。

我真的厌倦了我查找的所有变体都不起作用的事实。任何帮助都会很棒。

标签: azureazure-functions

解决方案


首先,azure函数timetrigger中的cron表达式只有一种形式,即:

{second} {minute} {hour} {day} {month} {day of week}

其次,除了通过你的 timetrigger 的 cron 表达式触发之外,还有两种方法可以触发你的函数。

1、不同于blobtrigger,timetrigger不需要实际的东西。因此,当您在门户上单击运行时,将触发时间触发器。

2、里面有个设置function.json会导致timetrigger在你不想要的时候触发。它是runOnStartup。当它为 true 时,timetrigger 运行时将在函数应用因不活动、函数更改和函数应用横向扩展而空闲后唤醒时启动。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp#configuration

让我知道您的问题是否可以解决。:)


推荐阅读