我有一个带有计时器触发器的 Azure 函数。时间表为“0 0 18 * * 周一至周五”。我可以手动运行它,但它不会自动触发。我看到一些答案说应用服务计划不能是“经典”,但我没有看到该选项。我的函数应用程序的应用程序服务计划是基于消耗的。有什么建议吗?
这是 function.json:
{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.24",
"configurationSource": "attributes",
"bindings": [
{
"type": "timerTrigger",
"schedule": "0 0 18 * * MON-FRI",
"useMonitor": true,
"runOnStartup": false,
"name": "myTimer"
}
],
"disabled": false,
"scriptFile": "../bin/MyApp.dll",
"entryPoint": "MyApp.ProcessOptions.Run"
}
最佳答案
如果它位于应用服务计划
中,您需要确保启用始终开启。
在消费
模式下,不存在Always On
这样的东西。相反,您的函数应用应该在计时器到期时自动唤醒。为此,您的触发器需要同步
,这通常在各种情况下自动发生:
a) 如果您使用门户来更改功能
b) 如果您使用 msdeploy、Kudu git deploy 或 Kudu 的 zipdeploy (/api/zipdeploy
) 部署 Function App
c) 如果您单击门户中 Function App 名称旁边的小刷新图标
注意:默认情况下,计划使用 UTC 时间,因此在设置每日计划时请注意这一点(如果每小时触发也没关系)。
您可以通过设置 WEBSITE_TIME_ZONE
将其更改为特定时区。请参阅here了解更多信息。
更多详情可以引用这个article .
关于Azure 计时器功能未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53673307/