2017-12-21 16 views
0

저는 주기적으로 RabbitMQ에서 업데이트를 받고 처리하는 Python 스크립트 cron-job을 작성하고 있습니다. RMQ 큐를 처리 할 때마다 RMQ 큐의 현재 스냅 샷을 얻어야합니다. queue_declare를 사용하여 메시지의 수를 얻습니다. basic_get을 사용하여 메시지를 하나씩 가져 오는 방법을 알고 있습니다. 또한 basic_consume/start_consuming을 사용하여 백그라운드에서 메시지를 가져 와서 일부 목록에 저장하고 주기적으로 그 목록에서 가져 오지만 스크립트가 오류로 인해 실패하면 어떻게됩니까? 나는 모든 읽기 메시지를 목록에서 잃어 버릴 것이다. 또한 소수의 소비자 (RMQ에 대한 연결 풀)를 사용하여 하나씩 메시지를받을 수 있습니다. 어쩌면 다른 접근법이있을 수 있습니까?RabbitMQ 대기열에서 많은 메시지를 읽는 가장 좋은 방법은 무엇입니까?

내 질문은 - RabbiMQ 대기열에서 현재 메시지를 가져 오는 가장 안전하고 빠른 방법은 무엇입니까?

답변

3

메시지를 사용하는 가장 좋은 방법은 basic_consume입니다. basic_get이 느립니다.

+0

소리가 진실과 비슷하지만 소비 중 스크립트를 중지하면 (또는 오류가 발생하면 어떻게됩니까? 특별한 문제가 있습니까? – Sergius

+2

RabbitMQ가 작동하는 방식, 특히 메시지를 확인하는 과정과 승인되지 않은 경우 어떻게되는지 알아야합니다 (https://www.rabbitmq.com/confirms.html). –