在我们的一个连续的webjobs中有一个场景让我们有些困惑。我们有非常彻底的日志记录,它绘制的图片似乎表明两个消息是由同一个webjob调用而出列的。时间戳似乎支持这一点。但更为引人注目的是例外。
在我们的代码中,我们在字典中添加了一个键。我们观察到的例外是尝试将重复键添加到该字典中。如果2个消息是由同一个webjob方法实例同时出列的,那么这是唯一有意义的事情。因为使用 new 关键字每次调用都会创建字典,即每次调用dequeue方法都会在内存中创建一个单独的对象。
简而言之,我的问题是,2个消息是否可以通过观察该队列的连续运行的webjob的相同实例/方法同时出现?
答案 0 :(得分:1)
默认情况下,并行执行,因此出列消息的排序会有所不同。您可以将batchsize设置为1 https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/#config