【问题标题】: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。 【讨论】: