I like the way you wrote your question - it began very broadly and focused on specifics. I have successfully implemented something very similar, and I'm currently working on an open source project to learn lessons and bring them back to the community. Unfortunately, though ... I still have to carefully package the code, which will not help you! In any case, to answer your questions:
1. Is it possible to use threading for multiple queues.
A: Yes, but it can be full of traps. Namely, the RabbitMQ.NET library is not the best written piece of code, and I found that it is a rather cumbersome implementation of the AMQP protocol. One of the most pernicious warnings is how it deals with "accepting" or "consuming" behavior, which can lead to deadlocks if you are not careful. Fortunately, this is well illustrated in the API documentation. Tip . If you can, use a solid connection object. Then, in each thread, use the connection to create a new IModel and associated consumers.
2. How to gracefully handle exceptions in threads - I believe this is another topic, and I will not consider it here, as there are several methods that you can use.
3. Any open-source projects? - I liked to think about EasyNetQ , although I still rode on my own. I hope to remember to follow me when my open source project is completed, as I believe this is even better than EasyNetQ.
source share