我知道webjob可以使用webapp扩展,即如果我的webapp在5个实例上运行,那么webjobs也将在5个实例上运行。 我只想知道是否有办法在网站的每个实例中都有多个webjob实例。
注意:我已经有 JobHostConfiguration.QueuesConfiguration.BatchSize = 32 的最大值。
现在,我的webapp正在运行1个实例。 Webjobs同时处理32个。 我的目标是同时处理3 * 32 = 96。
实现此目标的一种可能方法是部署相同的webjobs 3次(为webJobName属性设置不同的名称),但我不确定这是否是一个好习惯。请指出相应的文件。
config.Queues.NewBatchThreshold 表示什么?
config.Queues.NewBatchThreshold 的默认值是什么?
对于队列处理, config.Queues.NewBatchThreshold 的推荐值是什么?
答案 0 :(得分:6)
从https://github.com/Azure/azure-webjobs-sdk/issues/628复制Jon的回答:
NewBatchThreshold是SDK刷新批处理之前要在批处理中留下的消息数。
例如,如果您的批量大小为20且NewBatchThreshold为5,则SDK每次都会从队列中抓取20条消息,将它们传递给您的代码,以便您逐个处理它们,然后当它下载到最后5条未经处理的消息(因此您已经处理了15条消息)它将获取下一个20 See here"并行执行"
默认情况下,NewBatchThreshold是BatchSize(see source code)的一半,这就是批量大小为1时看到值为0的原因。
请注意,我们希望按照我this issue开放的方式减少混淆。