我正在尝试侦听可以包含具有多种事件类型的消息的服务总线。当消息到达时,我想根据事件类型对其进行处理。我有 2 个 azure 函数来处理不同的事件类型消息,但是当一个函数接收到消息时,另一个函数不会被触发。是否可以同时触发它们并让它们决定由哪一个处理消息?
这是一些示例代码,它们位于两个独立的项目中:
[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);
}
Run Code Online (Sandbox Code Playgroud)