azure - Azure 函数 - Cron 触发器 - 每秒都可以,但不是每分钟
问题描述
我正在尝试在我的 Azure Function 计时器触发器中为每一分钟创建一个 CRON。
根据我发现的文档:https ://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer#cron-examples
"0 */1 * * * *"
根本不运行。
"*/1 * * * * *"
确实每秒运行一次。
我哪里错了?
function.json
看起来像这样:
{
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 */1 * * * *"
}
],
"scriptFile": "../dist/TriggerWork/index.js"
}
解决方案
我可以重现您的{AzureWebJobsStorage}
连接字符串条目的问题local.settings.json
,它的格式以某种方式不匹配:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "{AzureWebJobsStorage}",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}
对于除 HTTP 之外的所有触发器,需要有效的 AzureWebJobsStorage 连接字符串。这背后的原因与横向扩展至多个 VM 有关:如果函数横向扩展至多个 VM 并具有多个实例,则需要一个存储帐户进行协调,以确保一次仅运行一个计时器触发器实例。如果您尝试在本地开发,这会带来一些困难,但不幸的是,这目前是计时器触发器的限制。
有关更多详细信息,您可以参考这个类似的问题。
推荐阅读
- angular - Angular SPA 的导航图
- javascript - 在 catch axios 中未定义 error.response
- postgresql - 在 PostgreSQL 日志中获取“不完整的启动数据包”
- python - CTRL S 使用 selenium python 保存 chrome 页面内容不起作用
- sas - 在 sas 中使用 proq sql 进行数据操作
- php - Laravel 管理员 - Voyager 路由重定向
- node.js - 使用 azure 管道部署 create-react-app
- asp.net-mvc - 如何以最佳方式执行登录识别过程?
- c# - 如何从以客户端服务器为中心的不同命名空间填充 ListView
- sql - 如何在分组集中获取与最小值和最大值对应的项目的名称到不同的列中