Resend messages from RabbitMQ works strange

I have RabbitMQ cluster in docker images. RabbitMQ have 1 exchange “EventExchange” and 2 queues: “QueueWait” and “QueueAction”. Queues configured for resend:

  • x-dead-letter-exchange: EventExchange
  • x-dead-letter-routing-key: QueueAction
  • durable: true

And consumer listens QueueAction.

  • X11 forwarding of GUI app in Docker container
  • Connect to SQL Server on Linux (docker) using SQL Management Studio
  • ssh into boot2docker - can you see -v folders from within boot2docker vm
  • How to place secure file in rancher storage?
  • ImportError when importing elasticsearch.helpers in Python
  • How to have my docker daemon log print to logfile not to STDOUT?
  • Logic

    1. Message is inserted into queue QueueWait with variable expiration time
    2. After expiration message is moved from QueueWait to QueueAction
    3. Consumer listening QueueAction got message

    Problem

    Today I had problem. Expired messages are not moved between QueueWait and QueueAction. But if I get all messages from QueueWait in default GUI of RabbitMQ they will be moved to the QueueAction succesfully

    Environment

    • Image of docker – May be it is docker problem?
    • RabbitMQ 3.2.4, Erlang R16B03

    UPD:

    I have to set TTL on the message level, because I have variable expiration dependet on the attempts of resend. How will I able to save current logic with guaranteed resend?

  • Linking Multiple Docker Swarms
  • How to set PGOPTIONS when starting Postgres using docker-compose
  • Dockerpy executing command to cat log file
  • How to allow incoming connection on a particular port from specific IP
  • Having two images of docker for production and development
  • Boot2Docker/Fig mounted volume not refreshing
  • One Solution collect form web for “Resend messages from RabbitMQ works strange”

    Take a look at https://www.rabbitmq.com/ttl.html#per-message-ttl-caveats

    RabbitMQ expires messages when they reach the head of the queue, so if you don’t have consumers, most probably your messages won’t get expired.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.