函数的Azure SQL触发器在空闲后未触发

zfciruhq  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(102)

我有一个独立的C# Function应用程序在dotnet 7上运行,使用带有SqlTrigger函数的消费计划。该功能相对简单,我使用的是host.json的默认设置。我注意到,一旦我的函数应用程序变得空闲,SqlTrigger似乎不再触发新的更改。
为了测试,我在FuntionApp上调用了一个HttpTrigger来强制它离开空闲状态,几乎直接地,SqlTrigger就变成了活动的,并执行了它想要的操作。然而,我不能依靠任何HttpTrigger的有功能的应用程序离开其空闲状态。在documentation中,我也找不到任何关于调整轮询算法的信息,尽管它对消费计划的引用似乎表明它应该支持轮询算法。
如何让我的SqlTrigger功能按预期运行?
编辑:检查数据库日志,我还可以看到,检索其最后一个同步版本的特定查询在12个多小时内没有被调用,直到我迫使Function App退出其空闲状态。

qcbq4gxm

qcbq4gxm1#

谢谢你联系我们我了解到您的SQL触发器函数应用程序在进入空闲状态后未被触发。这里有一些建议,你可以尝试:
1.由于您的应用程序处于消费计划中,冷启动问题必然会发生。请确认您是否可以使用AlwaysOnDedicated (App Service)套餐。或者,您也可以将函数应用程序移动到Premium plan,它具有温执行环境,可以减少冷启动。
1.您可以尝试利用Azure函数的TimerTrigger,并将其安排为定期运行(例如每5分钟),以便启动并运行该函数。
1.您也可以尝试调整函数应用的functionTimeout设置。对于消耗计划,默认和最小超时为5分钟。可以设置的最大超时时间为10分钟。这可以添加到hosts.json。或者,您也可以在Function的应用程序设置中添加此选项,如:

AzureFunctionsJobHost__functionTimeout = 00:10:00

希望这对你有帮助。

相关问题