【问题标题】:Queue does not showing in Rabbitmq队列未在 Rabbitmq 中显示
【发布时间】:2021-10-09 15:28:41
【问题描述】:

我有两个独立的服务,一个叫做 Teacher.API 和 Process.API。教师服务生成 POST 请求,教师详细信息将根据我的需要发送到流程服务。

这就是我在这两个服务中配置 MassTrasit 的方式。

Teacher.API

services.AddMassTransit(x =>
{
    x.UsingRabbitMq((context, config) =>
    {
        config.Host(new Uri("rabbitmq://localhost"), h =>
        {
            h.Username("guest");
            h.Password("guest");
        });
    });
});

Process.API 中。

services.AddMassTransit(x =>
{
    x.AddConsumer<TeacherConsumer>();
    x.UsingRabbitMq((context, cfg) =>
    {
        cfg.Host(new Uri("rabbitmq://localhost"), h =>
        {
            h.Username("guest");
            h.Password("guest");
        });
        cfg.ReceiveEndpoint("teacherQueue", ep =>
        {
            ep.PrefetchCount = 16;
            ep.UseMessageRetry(r => r.Interval(2, 100));
            ep.ConfigureConsumer<TeacherConsumer>(context);
        });
    });
});

而在Teacher Controller中,我的POST请求如下,

[HttpPost]
public async Task<IActionResult> Registraion(Teacher Teacher)
{
    if (Teacher != null)
    {
        Teacher.BookedOn = DateTime.Now;
        Uri uri = new Uri("rabbitmq://localhost/teacherQueue");
        var endPoint = await _bus.GetSendEndpoint(uri);
        await endPoint.Send(Teacher);
        return Ok();
    }
    return BadRequest();
}

在这里,我正在创建一个新的 teacherQueue 队列并推送 Teacher 对象。

我的问题是,RabbitMQ 管理插件,没有在队列部分显示teacherQueue,而是在 Exchanges 中显示。

我的消费者部分如下,这个消费者也没有命中。

public class TeacherConsumer : IConsumer<Teacher>
{
    public Task Consume(ConsumeContext<Teacher> context)
    {
        var data = context.Message;
        return Task.CompletedTask;
    }
}

有什么原因吗?我做错了什么?

【问题讨论】:

    标签: asp.net-core asp.net-web-api rabbitmq masstransit


    【解决方案1】:

    您缺少 AspNetCore 包,以及对以下内容的调用:

    services.AddMassTransitHostedService();
    

    真正启动公共汽车。

    【讨论】:

    • 是的,这就是原因。感谢您节省了我的时间。
    • 你修改了我的代码,我可以知道原因吗?
    • 您的配置已过时,基于较早版本的 MassTransit。
    • 感谢@Chris Patterson 所做的一切
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2012-04-21
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多