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.

  • docker error: /var/run/docker.sock: no such file or directory
  • Execute docker host command inside jenkins docker container
  • Are docker-hosted databases somehow exempt from backup best practices?
  • How to partition web application in Docker
  • Docker-compose mysql: import .sql
  • Is it possible/sane to develop within a container Docker
  • 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?

  • Docker compose connection issue
  • Out of memory error in opencv3.0 which is running inside docker container
  • Bulk Container image pull without “docker pull”
  • Using Docker for HPC with Sun Grid Engine
  • Heredoc on docker exec
  • Configure fig to run one container before another
  • 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.