Azure Function App 未触发计时器触发器

问题描述 投票:0回答:2

我有一个 Azure 计时器触发器,部署时似乎从未触发。我每次都能在本地成功运行它,但是一旦部署,它似乎就永远无法工作。

我正在使用消费(无服务器)计划,并且我正在使用 v4 中的节点应用程序。我使用 Azure Functions 扩展通过 VSCode 进行部署。

我已在配置设置中将 WEBSITE_TIME_ZONE 设置为“GMT 标准时间”。

我的 CRON 表达式设置为每小时运行一次,并且为“0 * * * *”。我希望它每小时整点运行一次,但即使我将其更改为每 1 分钟运行一次,它也从未运行过。

我尝试在门户内运行该函数(使用“代码+测试”选项),但由于某种原因,它给了我一个 404 未找到,并且我看不到任何日志。我很乐意分享调用 ID,但不幸的是它似乎没有运行以实现这种情况!

我也尝试按照此页面上列出的步骤进行操作,但这没有帮助。 FWIW,我在同一个功能应用程序中有一个 httpTrigger 运行完美 - 它只是计时器似乎不起作用。

azure azure-functions
2个回答
0
投票

事实证明,经过一番苦思冥想,我终于解决了这个问题。 这个答案为我解决了这个问题。从本质上讲,定时器触发的 Azure Functions 和计划的 Azure WebJobs 等服务使用 NCrontab,并且需要六部分格式。这是六个部分而不是五个,所以我原来的表达:

  • “0 * * * *” - 从不触发
  • “0 0 * * * *” - 这个可以

很遗憾,因为计时器触发器的默认 VSCode 模板为您提供了一个由 5 部分组成的 CRON 表达式,但它实际上从未起作用!将其更改为 6 部分表达式解决了我的问题。


0
投票

CRON 和 NCRONTAB 之间是有区别的。 Cron 每分钟使用 5 个字符 (* * * * *),而 NCRONTAB 每分钟使用 6 个字符 (0 * * * * *)。

© www.soinside.com 2019 - 2024. All rights reserved.