使用RabbitMq传输的Masstransit在队列中累积消息并延迟消费

vawmfj5a  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(165)

我有一个特殊的用例,我的应用程序在启动时需要生成一个临时队列,让消息在初始化时积累,只有在初始化完成后才启动这个临时队列的消费者。
最好的选择是仍然以自动删除的方式创建队列,但还不启动使用者,然后在完成一些初始化工作后再附加使用者。
这甚至可能与MassTransit吗?
我无法找到一种方法,能够做到这一点与大众运输和.net核心。这是我使用的代码的一个例子:
` serviceCollection.AddMassTransit(businerator => {businerator.AddConsumer();

busConfigurator.UsingRabbitMq((ctx, cfg) =>
{
    cfg.Host("rabbitmq://localhost");
    cfg.ReceiveEndpoint(queue =>
    {
        queue.ConfigureConsumer<MyConsumer>(ctx);
    });
});

});`
应用程序一启动,使用者就开始使用消息,我对此无法控制。我还尝试使用IBusControl接口,但停止它也会删除队列(当然,因为它们被创建为自动删除)。

rxztt3cl

rxztt3cl1#

您可以使用endpoint dependencies阻止接收端点启动,直到您准备好接收消息。

相关问题