我们正在使用 azure web job 进行批处理,当存储队列中有消息时会触发该作业。
我们已将作业配置为一一执行消息。
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.BatchSize = 1;
config.Queues.MaxDequeueCount = 1;
即使该作业从存储队列中获取多条消息并并行执行。
请帮忙。
我们正在使用 azure web job 进行批处理,当存储队列中有消息时会触发该作业。
我们已将作业配置为一一执行消息。
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.BatchSize = 1;
config.Queues.MaxDequeueCount = 1;
即使该作业从存储队列中获取多条消息并并行执行。
请帮忙。
从存储队列中获取多条消息并并行执行
您如何判断接收多条消息并并行执行?你有多个实例吗?
我在不同的情况下测试代码。
1)正常情况,不设置batchsize
,它会拖拽队列中的所有消息。但是我认为它仍然会一个一个运行。但是从结果我认为它不会等待最后一次运行完全结束。这是结果。
2)设置batchsize
为1,如果你调试代码或频繁刷新队列,你会发现它确实拖了一条消息一次运行。这是结果。
3) 设置batchsize
为 3 并调试,它只是改变拖拽的消息号,每次拖拽 3 条消息,然后在没有设置的情况下正常运行batchsize
。这是结果。我发现如果你只是运行 not debug ,显示的订单控制台非常有条理。
因此,如果您没有其他实例运行,我认为这是在顺序模式下工作。如果这不符合您的要求或您仍有疑问,请告诉我。