将消息TTL设置为1小时RabbitMQ

Phi*_*ord 5 php amqp ttl rabbitmq symfony

如何从中设置消息TTL(不是队列)

  • 交换(交换发送到多个队列)
  • 消息(发布消息时)
  • 队列(在队列本身,但这又是消息TTL而不是队列TTL)

我正在运行RabbitMQ 3.x,Symfony 2.1.x和RabbitMqBundle.

我尝试过的:

  • 当我从RabbitMQ管理UI创建队列时设置消息TTL

我将消息属性设置为'x-message-ttl' => 3600000.在RabbitMQ配置中,它看起来像这样:

{
    "name": "blah_queue",
    "vhost": "foobar",
    "durable": true,
    "auto_delete": false,
    "arguments": {
            'x-message-ttl' => 3600000
    }
},
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

PRECONDITION_FAILED - inequivalent arg 'x-message-ttl'for queue
Run Code Online (Sandbox Code Playgroud)

我尝试在config.yml中设置(symfony/https://github.com/videlalvaro/RabbitMqBundle/README)

这给捆绑使用的AMQP库带来了一堆错误.

我尝试修改AMQP库本身以允许x-message-ttl消息属性,我得到一个例外Error sending data.

有没有人使用RabbitMQBundle设置Message TTL?

queue_options:    {name: 'blah_queue', arguments: {'x-message-ttl' => 3600000}}
Run Code Online (Sandbox Code Playgroud)

jam*_*s_t 1

queue_options:    {name: 'blah_queue', arguments: {'x-message-ttl' : ['I', '3600000']}}
Run Code Online (Sandbox Code Playgroud)