我有一个从服务总线队列读取的 Azure 网络作业。我的目标是每个实例同步处理来自队列的 1 条消息。那可能吗?
我观察到,如果队列中有 100 条消息,我会看到 10~20 个 webjob 实例同时运行,每个实例处理来自队列的不同消息。我想将此限制为 1 条消息。到目前为止,我已经尝试了以下方法:
- 我创建了一个带有 {"is_singleton": true} 属性的 settings.job 文件。
- 我还尝试在函数签名之上使用 [Singleton] 属性。
- 我尝试设置属性 config.Queues.BatchSize = 1 和 config.Queues.NewBatchThreshold = 1。
这是我的 webjob 函数的签名:
[ServiceBusAccount("servicebusconnstr")]
public static void MigrateDoc([ServiceBusTrigger("myqueue")] string queueItem, TextWriter log)
{
...
}
这些方法似乎都不起作用。