Skip to content
This repository has been archived by the owner on Apr 29, 2022. It is now read-only.

Can't Produce and Consume messages in same application #67

Open
danieliu456 opened this issue Dec 17, 2020 · 4 comments
Open

Can't Produce and Consume messages in same application #67

danieliu456 opened this issue Dec 17, 2020 · 4 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@danieliu456
Copy link

I Have use case where I need to consume message, make some work and push it back to other queues. The problem is that DI container have some strange behavior in Worker application.

services
    //.AddRabbitMqClient(rabbitConnection)
    .AddRabbitMqConsumingClientSingleton(rabbitConnection)
    .AddConsumptionExchange("exchange", consumption.ExchangeOptions)
    .AddMessageHandlerSingleton<MessageHandler>("RKey", "exchange");

services.AddHostedService<ConsumingService>();

When I try to use AddRabbitMqClient(rabbitConnection) It will inject IQueueService, but application wont start,

image

managed to make work around by injecting .AddRabbitMqConsumingClientSingleton(rabbitConnection), because it injects only IConsuming service and then application starts successfully (MessageHandlerSingleton)

image

But when I Added .AddRabbitMqProducingClientSingleton(rabbitConnection) It fails.
First of all it will not inject IQueueService we can check that in IServiceCollection List, so I can reach produce methods only by injecting IProduceService to send some messages to rabbit.

services
    .AddRabbitMqConsumingClientSingleton(rabbitConnection)
    .AddRabbitMqProducingClientSingleton(rabbitConnection)
     .AddProductionExchange("exchange", production.ExchangeOptions)
    .AddConsumptionExchange("exchange", consumption.ExchangeOptions)
    .AddMessageHandlerSingleton<MessageHandler>("RKey", "exchange");

Consuming still works after adding ProducingClientSingleton

But When I try to inject IProducingService producingService to Message Handler application freezes and DI container do not construct MessageHandler Singleton and ConsumingService anymore and there is no any error messages. :/

I am trying to make connection to the same server but different exchanges, maybe I have missed something in the documentation ?

RabbitMQ.Client.Core.DependencyInjection V4.3.0

.Net core 3.1

@danieliu456 danieliu456 changed the title Cannot Produce and Consume messages in same application Can't Produce and Consume messages in same application Dec 17, 2020
@virtualas10
Copy link

I am seeing this too. Interested to hear the outcome!

@MaslovD
Copy link

MaslovD commented Jun 3, 2021

any updates on this issue?

@antonyvorontsov antonyvorontsov self-assigned this Jun 4, 2021
@antonyvorontsov antonyvorontsov added bug Something isn't working enhancement New feature or request labels Jun 4, 2021
@antonyvorontsov
Copy link
Owner

I'll try to take a look at this next week

@remotenode
Copy link

@antonyvorontsov any update?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working enhancement New feature or request
Projects
Development

No branches or pull requests

5 participants