== AMQP Message Queue == === Invoice Lifecycle === # System 36 generates invoice and "prints" it # Redmon intercepts that data by acting like a printer # Custom C# tool RawUploader writes this data to a local database # Custom C# tool DataQueueDispatcher uploads records from local database to CRM Printlog Raw table # CRM takes Raw record and parses it into a CRM Invoice record # CRM submits Invoice id and formats to be printed to AMQP message queue to be printed # Custom C# tool PrintDaemon monitors AMQP message queue and spools any waiting records to the selected printer We use a message queue, RabbitMQ, to store invoices waiting to be printed. The RabbitMQ daemon runs on Server20081 and publishes a queue called invoice. Print tools and the CRM interface with this queue with the credentials stored in KeePass. === Clear the Queue === In the case of certain errors the message queue may need to be cleared. You can do that by logging into the AMQP server and issuing the following command. **Note:** Only unacknowledged messages can be cleared. So any queue monitoring programs should be stopped. rabbitmqctl purge_queue You can be sure the command worked by checking the queue status. rabbitmqctl list_queues