2017-09-21 2 views
0

내 대기열에서 특정 시간 내에 처리되지 않은 메시지를 삭제하고 싶습니다.Pika에서 TTL을 구현합니까?

저는 이미 소비자에게 게시 시간을 기록하여이를 수행합니다. 그러나 아무도 서브 스크립 션을하지 않는 경우 대기열이 부실 메시지를 단순히 삭제하는 것이 좋습니다.

Pika의 메시지에 만료 시간 (TTL)을 설정할 수 있습니까? RabbitMQ 문서는 그것에 대해 이야기하지만 Pika 문서에서는 TTL 참조를 볼 수 없습니다.

답변

1

pika 설명서 here에서 볼 수 있듯이 BasicProperties 개체의 만료 플래그를 사용하여 메시지 당 TTL을 설정할 수 있습니다.

다음과 같이 사용하면됩니다.

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

expiration 정책이 밀리 초를 사용하여 표현 명심하십시오, 그래서 60000 60 초 번역 것입니다.

메시지 기반 TTL에 대한 자세한 내용과 그에 대한 설명은 here입니다.

관련 문제