我用azure函数观察了这个奇怪的问题,它由服务总线队列消息触发。
Azure function is continuous running
是trigger when service bus queue gets new message
。
但是当长时间没有消息进入队列时,比如假设1-2天,当新消息在2天后进入队列时,奇怪的是天蓝色的功能没有被触发,为什么有任何线索呢?
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);
尝试通过点击“刷新”按钮强制重新同步触发器。对于在非确定性时间段内处于空闲状态的Azure功能,这是一个已知问题。另外,验证您是否在死信队列中看到了这些消息。
通过启用“Always On”阻止Azure功能进入空闲状态:在Azure门户中打开功能应用程序。单击Function App刀片顶部的Function App Settings。滚动到页面底部,然后单击转到应用程序服务设置。在“设置”边栏框中,向下滚动并单击“应用程序设置”。在“应用程序设置”边栏选项卡中,确保“始终开启”设置设置为“开”。