Pika中是否实施了TTL?

时间:2017-09-21 23:35:33

标签: pika

我希望我的队列能够删除在一定时间内未处理的邮件。

我已经通过记录发布时间在消费者中这样做了。但是,在没有人订阅的情况下,队列最好简单地删除陈旧的消息。

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

1 个答案:

答案 0 :(得分:5)

您可以使用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

相关问题