首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ActiveMQ中为MassTransit设置唯一的队列名?

如何在ActiveMQ中为MassTransit设置唯一的队列名?
EN

Stack Overflow用户
提问于 2021-10-16 14:21:29
回答 1查看 1K关注 0票数 1

在项目的StartUp中,我为MassTransit.ActiveMQ做了以下设置。但是当我运行时,它会为我创建两个队列,一个是event-listener,另一个是Generation

当我发布信息时,这些信息会进入系统生成的队列中。

但是,我希望在我设置的队列event-listener中发布信息。

请引导我

代码语言:javascript
复制
services.AddMassTransit(x =>
{
    x.AddConsumer<EventConsumer>();

    x.UsingActiveMq((context, cfg) =>
    {
        cfg.Host("localhost", h =>
        {  
            h.Username("admin");
            h.Password("admin");
        });

        cfg.ReceiveEndpoint("event-listener", e =>
        {
            e.ConfigureConsumer<EventConsumer>(context);
        });
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-16 14:31:44

MassTransit只为配置好的使用者创建队列,或者显式配置接收端点。在上面的代码中,创建的唯一队列将称为event-listener。对于使用者使用的每个消息类型,将创建一个主题,并创建一个虚拟主题使用者,以便接收端点可以使用每种类型的消息。

当消息发布时,将为每个已发布的邮件类型创建一个主题。

如果您想直接向队列发送消息,而不是发布消息:

代码语言:javascript
复制
var provider = serviceProvider.GetRequiredService<ISendEndpointProvider>();

var endpoint = await provider.GetSendEndpoint(new Uri("queue:event-listener"));

await endpoint.Send(...);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69596448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档