我正在学习azure webjob和队列,在我工作的公司,每晚,我们计算700万条记录。计算非常简单,但数量非常大(因为db中有大约700万条记录)。
随着公司迁移到Azure,我想知道是否可以使用azure队列来处理这个问题?从理论上讲,我可以创建一些代码来填充队列(因为有64kb的消息大小限制,我想我可以在一条消息中放入10条记录, 所以总消息将是700k?)。然后我将拥有由队列触发的webjob并进行计算。
但是,根据here,邮件检索的最大限制为32。
这是否意味着同时触发最多32个webjob?如果是这样,700000/32 = 21875,这意味着完成需要很长时间。
是否有办法触发更多webjob并行运行而不是32限制?
答案 0 :(得分:1)
通过合并BatchSize
和NewBatchThreshold
,您可以获得更高的并发性。查看它的最佳方法是并发限制是两个标志的总和。因此,如果将BatchSize
保留为32并将NewBatchThreshold
设置为100,则并发限制将为132.
有关详细信息,请参阅https://github.com/Azure/azure-webjobs-sdk/issues/628。