Why should I use rabbit-client?
rabbit-client provides a high level abstraction to consume and produce asynchronous events with some level of warranty that event don't will be lost in case of failures.
What type of job can I use?
Subscribe class use a
task that's nothing more that an awaitable. This will be executed when a event is received by queue, so can you use a task to process IO or CPU bound jobs.
Why use Dead Letter Exchange?
A DLQ will assist you to dosen't lost an event that fail for some reason. So if somehow the task fails, raising any kind of exception, the event will be sent to DLQ and after some delay defined by
rabbit-client strategy it will be back in the main queue so that the application can try to process it again.
How optimize concurrent jobs?
Just increase the value of
concurrent attribute in the Subscribe.
However if the job consists in CPU bound or long running tasks workloads it's a good choice decrease the value.
Why use publisher-confirms?
The RabbitMQ documentation are a great place, so I don't repeat myself =)
Check this links: