我对Azure函数有相当多的经验,以前从未注意到有问题,但我目前使用的计时器函数让我有点头疼。
我使用CRON表达式:0 */18 * * * *
对我来说意味着“每18分钟运行一次”。一般来说,它遵循这种模式,但最近它已经发展出自己的思想。当调用Application Insights时,我会向它写入以下内容,这些是前几天每次调用之间的分钟数:
18,4,4,16,18,18,6,4,14,18,18,6,9,9,18,18,6,13,18,18,6,16,4.
显然,我希望他们都是18岁,但看起来每天都是这样。一些调用在2分钟后发生。我曾经检查过状态配置,看看它说了什么,这是内容:
{"Last":"2023-07-20T10:54:00.0084847+00:00","Next":"2023-07-20T11:00:00+00:00","LastUpdated":"2023-07-20T10:54:00.0084847+00:00"}
字符串
正如你所看到的,它运行了10:54:00,然后计划下一个运行在11:00:00。还不到18分钟!
额外的信息-预定的动作大约需要3分钟才能运行,超时设置为10分钟,但它从来没有达到这一点。我还使用Visual Studio将Azure Function作为Zip部署进行部署。Function App是运行时版本4。
1条答案
按热度按时间nxagd54h1#
我尝试使用相同的CRON表达式
0 */18 * * * *
:x1c 0d1x的数据
只有一次处决是不规则的,所有其他处决都是规则的,相差18分钟。
的
执行中的不规则性可能是因为函数应用扩展到多个示例,并且计时器触发函数的仅一个示例在所有示例中运行。
如果问题仍然存在,请尝试使用Timespan值而不是CRON表达式来指定每次函数调用之间的时间间隔。
如document中所述,为了保持函数执行的规律频率:
的