gpt4 book ai didi

c# - 如何配置 Consumer 以处理不同的消息类型?(MassTransit)

转载 作者:行者123 更新时间:2023-11-30 20:33:01 25 4
gpt4 key购买 nike

我使用 MassTransit 和 Azure 服务总线作为传输。我创建了 IAlert 和 IAlertExt 来实现 IAlert。我正在尝试发布两条消息:

busControl.Publish<IAlert>(new Alert(customerId));
busControl.Publish<IAlertExt>(new AlertExt(customerId));

并编写消费者来处理消息:

public class AlertConsumer : IConsumer<IAlert>
{
public async Task Consume(ConsumeContext<IAlert> context){
...
}
}

public class AlertExtConsumer : IConsumer<IAlertExt>
{
public async Task Consume(ConsumeContext<IAlertExt> context){
...
}
}

现在,发布后,两个消费者都会检索一条使用通用接口(interface)发布的消息。

如何强制 AlertExtConsumer 不仅检索使用 IAlertExt 发布的消息,还检索使用 IAlert 发布的消息?

最佳答案

您可以将两个接口(interface)放在同一个消费者中,如下所示。

public class AlertConsumer : 
IConsumer<IAlert>,
IConsumer<IAlertExt>
{
public async Task Consume(ConsumeContext<IAlert> context){
...
}
public async Task Consume(ConsumeContext<IAlertExt> context){
...
}
}

两个接口(interface)都将绑定(bind)到同一个消费者队列。

关于c# - 如何配置 Consumer 以处理不同的消息类型?(MassTransit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724627/

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