0

ServiceBusTrigger在收到消息时使用 a 来执行代码。我想使用Singleton 属性来限制可以并行执行的消息。该属性允许指定绑定到传入消息属性的范围,这样具有不同值的消息可以并行执行,但具有相同值的消息必须串行执行。

这在使用传入消息对象(如 CorrelationId)的顶级属性时有效。

例子

[Singleton("{CorrelationId}", SingletonScope.Function, Mode = SingletonMode.Function)]
public async Task HandleMessage(
    [ServiceBusTrigger("my-topic-name", "my-subscription-name"), ServiceBusAccount("my-account-name")]
    Message message,
    CancellationToken cancellationToken
)
{
    await Task.Yield();
}

我正在努力弄清楚的是如何使用消息上的用户属性实现相同的行为。这些都存储在对象的UserProperties字典中Message。我没有看到用Singleton属性中的绑定语句来引用这些的方法,但是当SingletonServiceBusTrigger

4

1 回答 1

0

服务总线绑定在绑定表达式中公开消息元数据。所以,userProperties.<key>应该做的伎俩。

于 2020-11-23T11:56:41.377 回答