在我的Azure队列触发的webjobs中,我要么根本不设置BatchSize(默认为16),要么我设置它:
JobHostConfiguration.Queues.BatchSize = ...;
有趣的是(经常点击F5)似乎无论设置是什么,队列中的项目数总是减少1.我想看看实际发生了什么 - 我怎么能查看在任何给定时刻抓取的消息数。该值似乎不是队列触发器元数据的一部分。
答案 0 :(得分:0)
据我所知,BatchSize是同时拾取并行执行的最大队列消息数(默认为16)。
在我看来,这意味着azure webjobs将一次执行16个线程来执行该功能。
如果您想查看在任何特定时刻抓取的消息数量。
我建议您可以在本地开发环境中编写测试演示。
我建议您尝试以下功能。
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log)
{
Console.WriteLine("start to execute queue : " + message );
//log.WriteLine(message);
Thread.Sleep(10000);
Console.WriteLine("End to execute queue : " + message);
}
代码中的“Thread.Sleep(10000)”将使线程休眠10秒。
然后你可以先在队列中添加20条消息并运行webjobs。
您会发现结果如下: