Sometimes in a project we need to use a tool to help us distribute messages to queues, that is, to queue tasks. Often we need such a tool when we want to create a newsletter for customers, or generate PDF files or other operations that require more waiting time. RabbitMQ is just such a tool that will help us with this task.


RabbitMQ task queuing tool

As I mentioned in the introduction, RabbitMQ is a tool that will allow us to queue tasks. RabbitMQ accepts and forwards tasks. The official documentation of the project tells us that we can think of RabbitMQ as a post office. By placing a letter in the mailbox or leaving one at the post office that we want to send, we are sure that the mailman will eventually deliver the package to the recipients. It may take some time, but the recipient will receive the letter from us. In this analogy, RabbitMQ is a mailbox, a post office and a letter carrier. The main difference is that RabbitMQ doesn't do paper delivery, instead it accepts, stores and transmits binary blobs of data. RabbitMQ uses some jargon:

  • Producing - meaning sending, a program that sends messages to a producer.
  • Queue - is the name for a mailbox. Messages that flow through RabbitMQ can only be stored in a queue. The queue is limited only by the memory and disk limits of the host.
  • Consuming - Has a similar meaning to Producing. Consuming is a program that mostly waits for messages to be delivered.


Installing RabbitMQ

RabbitMQ supports many programming languages, I in this article will present installations for Javascript, if you use another language, look at the documentation.


We install the amqp.node module, which will allow us to send and receive tasks:

npm install amqplib


If we want to have a preview of seeing what queues RabbitMQ has as well as how many messages are in them, we need to install the rabbitmqctl tool:

sudo rabbitmqctl list_queues


or Windows:

rabbitmqctl.bat list_queues

Related articles

Show all articles