我观察到由服务总线队列消息触发的azure函数的这个奇怪问题。
Azure function is continuous running
,即trigger when service bus queue gets new message
。
但是长时间没有消息进入队列时 1-2天,当2天后新消息进入队列时, 奇怪的是azure函数没有被触发,为什么有任何线索?
public static class TestController
{
[FunctionName("TestController")]
public static async Task Run([ServiceBusTrigger("%TestController.Topic%", "%TestController.Subscription%", AccessRights.Listen,
Connection = "ConnServiceBus")]BrokeredMessage currentMessage, TraceWriter log, ExecutionContext context)
{
log.Info("TestControllerprocessing start " + DateTime.Now);
答案 0 :(得分:1)
通过点击刷新按钮,尝试强制重新同步触发器。对于闲置了不确定时间段的Azure功能,这是一个已知问题。另外,验证您是否在死信队列中看到消息。
通过启用“始终打开”来防止Azure功能从闲置开始:在Azure门户中打开Function App。单击“功能应用程序”刀片顶部的“功能应用程序设置”。滚动到页面底部,然后单击“转到应用程序服务设置”。在“设置”刀片中,向下滚动并单击“应用程序设置”。在“应用程序设置”刀片中,确保将“始终打开”设置设置为“打开”。