gpt4 book ai didi

c# - 是否可以监听具有多个azure功能的服务总线?

转载 作者:行者123 更新时间:2023-12-02 07:33:55 25 4
gpt4 key购买 nike

我正在尝试监听可以包含具有多种事件类型的消息的服务总线。当消息到达时,我想根据事件类型对其进行处理。我有 2 个 azure 函数来处理不同的事件类型消息,但是当一个函数接收到消息时,另一个函数不会被触发。是否可以同时触发它们并让它们决定由哪一个处理消息?

这里是一些示例代码,它们位于 2 个独立的项目中:

[FunctionName("Function1")]
public async Task RunAsync(
[ServiceBusTrigger("queueName", Connection = "connectionName")]
Message message,
MessageReceiver messageReceiver,
ILogger log)
{
var body = Encoding.Default.GetString(message.Body);
var messageType = _helper.GetMessageType(body);

if (messageType is not MessageType.Type1)
return;

// business logic
await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);
}

[FunctionName("Function2")]
public async Task RunAsync(
[ServiceBusTrigger("queueName", Connection = "connectionName")]
Message message,
MessageReceiver messageReceiver,
ILogger log)
{
var body = Encoding.Default.GetString(message.Body);
var messageType = _helper.GetMessageType(body);

if (messageType is not MessageType.Type2)
return;

// business logic

await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);
}

最佳答案

对于 Azure 服务总线队列,这是不可能的,因为队列只能有一个使用者。

更好的方法是使用 Azure Service Bus Topics and Subscriptions 。您可以将消息发送到主题,然后创建订阅过滤规则,以便消息发送到适当的订阅。

然后,您可以让 2 个 Azure Functions,每个函数监听一个单独的订阅。

关于c# - 是否可以监听具有多个azure功能的服务总线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71755057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com