RichardKnop / machinery

Machinery is an asynchronous task queue/job queue based on distributed message passing.
Mozilla Public License 2.0
7.49k stars 913 forks source link

Add NSQ message broker #324

Open snapercloud opened 6 years ago

snapercloud commented 6 years ago

AMQP is a great way to send messages over-the-wire. However, there are some cases where we might prefer to use a natively distributed message queue. We would like to keep current infrastructure to send server-to-server messages with AMQP, and use NSQ sometimes to broadcast a message to all servers. It can be done with AMQP sofwares as RabbitMQ (pub/sub approach), but as I said, it's not native and requires overcoming limitations. There is already a stable, working client library for golang ( https://github.com/nsqio/go-nsq ).

kougazhang commented 3 years ago

Nsq is not good to handle slow consumer. One message will requeue if consumer last 15 minutes. So it may be not a good idea to use nsq in machinery. See Related issue