WebJob QueueTrigger如何触发,轮询或事件?

Ale*_* S. 17 .net azure azure-storage-queues

public static void ProcessMessage([QueueTrigger("queue")] string message, TextWriter log)
{
    //processing message
}
Run Code Online (Sandbox Code Playgroud)

这个方法究竟是如何触发的.

WebJob主机是否只是对存储队列进行轮询.或存储队列引发新的消息事件,该主机订阅?

dar*_*dem 31

这个链接有你的答案;

http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/

轮询算法

SDK实现了随机指数退避算法,以减少空闲队列轮询对存储事务成本的影响.找到消息后,SDK会等待两秒钟,然后检查另一条消息; 如果没有找到任何消息,它会等待大约四秒钟再重试.在后续尝试获取队列消息失败后,等待时间继续增加,直到达到最大等待时间,默认为一分钟.最长等待时间是可配置的.

这也有帮助;

JobHostConfiguration config = new JobHostConfiguration();       
config.Queues.MaxPollingInterval = TimeSpan.FromMinutes(1);        
JobHost host = new JobHost(config);
host.RunAndBlock(); 
Run Code Online (Sandbox Code Playgroud)