RabbitMQ doesn't process Queue

This problem may happen for different reasons. One of the possible cases: exchange bindings were not created in the RabbitMQ. In this case, RabbitMQ couldn’t push received messages to the Queue.

Symptoms:

  1. Magento is configured for the RabbitMQ

  2. Our module is configured to use the RabbitMQ

  3. When we add records to the Prequeue or Queue - not one item was processed for the long time (10-20 minutes)

Investigation steps:

  1. Make sure all necessary consumers are running on your server, use the following command for that:

    ps -aux|grep 'Salesforce'
  2. Make sure all our Queues were created in the RabbitMQ:

    1. tnw_salesforce.prequeue.process.amqp

    2. tnw_salesforce.queue.process.amqp

    3. tnw_salesforce_sync_realtime

  3. Make sure all Exchanges were created successfully:



    1. tnw_salesforce.prequeue.amqp

    2. tnw_salesforce.queue.amqp

    3. tnw_salesforce.sync.amqp

  4. Check these Exchanges Bindings, if no Bindings here - this is the reason if our issue:

     

Solution:

If you don’t see the Bindings - you need to create them manually. Use appropriated form on the Exchange page for that.

Exchange name

Queue

Routing key

Exchange name

Queue

Routing key

tnw_salesforce.sync.amqp

tnw_salesforce_sync_realtime

tnw_salesforce.sync.realtime.amqp

tnw_salesforce.queue.amqp

tnw_salesforce.queue.process.amqp

tnw_salesforce.queue.process.amqp

tnw_salesforce.prequeue.amqp

tnw_salesforce.prequeue.process.amqp

tnw_salesforce.prequeue.process.amqp

 

As a result, you should see the next result: