【问题标题】:Is TTL implemented in Pika?TTL 是否在 Pika 中实现?
【发布时间】:2018-03-03 10:38:10
【问题描述】:

我希望我的队列丢弃在特定时间内未处理的消息。

我已经通过记录发布时间在消费者中执行此操作。但是,在没有人订阅的情况下,队列最好简单地丢弃陈旧的消息。

我可以在 Pika 中的消息中设置过期时间 (TTL)。 RabbitMQ 文档讨论了它,但我在 Pika 文档中没有看到 TTL 引用。

【问题讨论】:

    标签: pika


    【解决方案1】:

    您可以使用 BasicProperties 对象上的过期标志设置每条消息的 TTL,如 pika 文档 here 中所示。

    使用它看起来像这样。

    channel.basic_publish(
        exchange='',
        routing_key='hello_world',
        properties=pika.BasicProperties(
            expiration='60000',
        ),
        body='my message'
    )
    

    请记住,expiration 策略使用毫秒作为字符串表示,因此60000 将转换为 60 秒。

    您可以阅读有关基于消息的 TTL 的更多信息以及注意事项here

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多