我意识到的非常奇怪的情况是——我的 Azure Function 每 40 分钟就会超时...这就是我的 host.json 文件中的 functionTimeout 参数设置的值:"functionTimeout": "00:40:00"
当我实际跟踪超时错误时,调用已经 40 分钟没有运行了。看来我的 Azure Function App 只是设置为每 40 分钟超时,而不管实际调用时间如何。
我的 Azure 函数也没有同时运行。我已将运行脚本的虚拟机数量减少到 1,并将 batchszie 设置为 1: "queues": { "batchSize": 1 }
在 40 分钟的间隔期间,进行调用并将数据放入我的数据库中。如果有一个调用实际上被卡住了,情况就不会是这样。至少根据我的理解,如果它不是同时运行的话。似乎在 40 分钟标记处运行的任何调用都会因超时而中断。我究竟该如何解决这个问题?
最佳答案
以下是此问题的一些可能性:
增加函数超时
- 如果您使用的是消费套餐,请尝试更改为高级或专用套餐,因为我们可以增加这些套餐的最大超时时间。
数据库连接超时
- 如果您的数据库连接空闲时间超过 30 分钟,该连接将被关闭。
- 如果您从SSMS或任何其他应用程序连接到 Azure SQL DB 的时间超过30分钟,且没有任何事件请求,您的 session 将超时。
使用持久功能
- 您可以使用Durable function并行运行多个函数,然后等待所有函数完成。
引用
关于python - Azure 函数以最大间隔超时,而调用尚未达到最大间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72019778/