如何在Azure队列触发的webjobs中查看一批邮件中的项目数?

时间:2017-04-23 17:57:07

标签: azure azure-web-sites azure-webjobs azure-webjobssdk azure-storage-queues

在我的Azure队列触发的webjobs中,我要么根本不设置BatchSize(默认为16),要么我设置它:

JobHostConfiguration.Queues.BatchSize = ...;

有趣的是(经常点击F5)似乎无论设置是什么,队列中的项目数总是减少1.我想看看实际发生了什么 - 我怎么能查看在任何给定时刻抓取的消息数。该值似乎不是队列触发器元数据的一部分。

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。

您会发现结果如下:

首先执行16个线程来执行该功能: enter image description here