Mat*_*hew 4 azure azure-functions
我目前正在开发一些 C# Azure Functions。我使用的命名约定是Process[ThingIWantToProcess]()这样的......
public static void ProcessRequest([TimerTrigger("00:00:10", RunOnStartup = true, UseMonitor = false)] TimerInfo timer, ILogger logger)
{
// Do function things
}
Run Code Online (Sandbox Code Playgroud)
几天前,所有功能(目前有 6 个)在部署时停止运行,但据我所知或看到,代码没有发生任何更改。
本地和 Kudu 控制台的控制台都会显示“找到以下功能:”并显示所有预期的功能;但是,这些函数永远不会运行。
我尝试了各种方法,包括重新部署、重新启动 Azure Web 作业以及更改方法的内容,但仍然没有任何结果。然后,我更改了该函数的名称,突然它开始工作了!
所以不是ProcessRequestnow ProcessRequest1,并且该函数成功触发。我用几种不同的方式更改了名称,所有这些都有效,但是当我改回 时ProcessRequest,它又停止工作了。
我在文档或互联网搜索中找不到任何解释此行为的信息,我担心在未来的维护过程中它会再次发生。
有其他人经历过这种情况吗?如果是的话,你能给我一些解释吗?
小智 6
嘿嘿!!这是由于 TimerTrigger 使用锁定行为来确保只有一个函数实例在横向扩展的实例上运行。因此,如果您对多个网络作业使用相同的存储帐户,您将面临这个问题。
要解决此问题,我建议为您的作业创建单独的存储帐户,它应该按原样工作!
欲了解更多信息,请访问:https://github.com/Azure/azure-webjobs-sdk/issues/614
| 归档时间: |
|
| 查看次数: |
12672 次 |
| 最近记录: |