Azure Webjob队列触发器无法正常工作

时间:2017-03-09 11:28:53

标签: azure azure-webjobs azure-queues

我的队列触发器仅在使用消息填充azure队列时以及同时运行webjob时才起作用。(在我的本地开发环境中) 但是当我首先启动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 个答案:

答案 0 :(得分:1)

对于按需WebJobs,Azure有一个名为WEBJOBS_IDLE_TIMEOUT的配置设置,以秒为单位,默认为两分钟。

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

我建议将Web App的WEBJOBS_IDLE_TIMEOUT变量设置为一个健康的秒数,以防止这种情况发生。

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