c# - Don't create skipped queues when there is a dead-letter message -


can somehow choose not create _skipped queues in request/response scenario?

we have chosen build our app (don't ask why, has reasons). doing publishrequest multiple consumers , 1 consumer responds. others generate skipped queue (timeout error). don't want change structure. if disable creation of skipped queues in rabbitmq, perfect.

buscontrol request:

buscontrol = bus.factory.createusingrabbitmq(busfactoryconfig => {     busfactoryconfig.host(new uri(serverurl), hostconfig =>     {         hostconfig.username(username);         hostconfig.password(password);     });     busfactoryconfig.autodelete = true;     busfactoryconfig.durable = true; }); 

request method:

var requestclient = buscontrol.createpublishrequestclient<trequest, tresponse>(timespan.frommilliseconds(5000)); tresponse response = taskutil.await(() => requestclient.request(request)); 

buscontrol respond:

buscontrol = bus.factory.createusingrabbitmq(busfactoryconfig => {     irabbitmqhost rabbitmqhost = busfactoryconfig.host(new uri(serverurl), hostconfig =>     {         hostconfig.username(username);         hostconfig.password(password);     });      busfactoryconfig.receiveendpoint(rabbitmqhost, receiveendpointconfig =>     {         if (retrylimit > 0)             receiveendpointconfig.useretry(retry.incremental(3, 5000, 5000));         receiveendpointconfig.consumer<tconsumer>();         receiveendpointconfig.purgeonstartup = false;         receiveendpointconfig.autodelete = true;         receiveendpointconfig.durable = true;     }); }); 

respond method in consumer:

return context.respondasync(response); 

if want timeout consumer generate dead-letter message , skipped queue, return this:

return task.completedtask; 

but don't want skipped queue visible in rabbitmq gui, other working great.

i asked same question chris patterson few months ago didn't answer: https://stackoverflow.com/a/39236139.

i don't want app creates many skipped queues, if creates 1 skipped queue can still live there many because there identifier in queuename...: see here

it default middleware @ moment there no way turn off. however, can create empty consumer jobject , consume messages, mean no matter message receive, there @ least 1 consumer. dead letter queue middleware not engaged.


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -