RabbitMQ is used as a message broker.
The RabbitMQ managagement console is exposed at
http://<your docker host>:15672/.
The username is
sfm_user. The password is the value of
The hostname for RabbitMQ is
mqand the port is 5672.
It cannot be guaranteed that the RabbitMQ docker container will be up and ready when any other container is started. Before starting, wait for a connection to be available on port 5672 on
rabbit. See appdeps.py for docker application dependency support.
Publishers/consumers may not assume that the requisite exchanges/queues/bindings have previously been created. They must declare them as specified below.
sfm_exchange is a durable topic exchange to be used for all messages. All
publishers/consumers must declare it.:
#Declare sfm_exchange from kombu import Connection exchange = Exchange(name="sfm_exchange, type="topic", durable=True) exchange(channel).declare()
All queues must be declared durable.:
#Declare harvester queue from kombu import Queue queue = Queue(name="harvester", exchange=exchange, channel=channel, durable=True) queue.declare() queue.bind_to(exchange=exchange, routing_key="harvest.status.*.*")