2017-03-09 124 views
2

我的队列触发器只在蓝色队列正在填充消息并且同时webjob正在运行时工作(在我的本地开发环境中) 但是当我启动webjob(具有队列触发器),然后在几秒钟后将新消息放入队列中,触发器不会检测到它们。它就像触发器一旦没有新消息就停止监听。这是触发器的正常行为吗?如果不是,我该如何解决这个问题?Azure Webjob队列触发器不起作用

主要方法:

static void Main() 
    { 
     InitializeQueue(); 
     var config = new JobHostConfiguration(); 

     if (config.IsDevelopment) 
     { 
      config.UseDevelopmentSettings(); 
     } 

     var host = new JobHost(); 
     // The following code ensures that the WebJob will be running continuously 
     host.RunAndBlock(); 


    } 

功能的队列触发

public static void ProcessQueueMessage([QueueTrigger("myqueue")] CloudQueueMessage message) 
    { 
     Debug.Write(message.AsString);  
    } 

回答

1

对于按需WebJobs,天青具有称为WEBJOBS_IDLE_TIMEOUT一个配置设置,被表示在秒,缺省值为2分钟。

如果您的按需Web工作未在WEBJOBS_IDLE_TIMEOUT时间间隔内触发,Azure将终止您的Web工作。

我建议您将Web应用程序的WEBJOBS_IDLE_TIMEOUT变量设置为健康秒数以防止发生此情况。

您可以在Web应用程序的“应用程序设置”屏幕上设置此变量,方法是将其添加到托管WebJob的Web应用程序实例的“应用程序设置”部分。

相关问题