저는 일괄 처리 작업을 배포하기 위해 Python/pika와 함께 RabbitMQ를 사용하고 있습니다. 그래서 저는 매우 일반적인 시나리오를 가지고 있다고 생각합니다. 하나의 프로세스가 작업 대기열로 채워집니다. 여러 작업자가 작업을 검색하고 데이터를 변환하여 결과를 두 번째 대기열에 넣습니다. 또 다른 단일 프로세스는 결과를 검색하여 병합합니다. 지금까지 아주 잘 작동합니다. 하지만 스크립트를 제어 된 방식으로 중지하려면 어떻게해야합니까? 대기열을 "무효화"하는 기능을 일부 구축했기 때문에 더 이상 작업이 채워지지 않을 것이라는 점을 알 수 있습니다."Invalidate"RabbitMQ 큐 또는 "DONE 신호"보내기
1
A
답변
0
아니요, 게시자가 AMQP의 대기열에 게시중인 사람의 수를 확인할 방법이 없습니다. 자신의 시스템을 롤백해야합니다.
이 작업을 수행하는 방법은 모든 작업자가 대기열을 바인딩 ("제어"교환이라고 부름)하고 게시자가 완료 될 때 특수 메시지를 보내도록하는 것입니다 (fanout
). 그런 다음 작업자는 자신의 "제어"대기열을 확인하여 게시자가 아직 있는지 확인할 수 있습니다. 그렇지 않고 사용할 수있는 메시지가 더 이상 없으면 안전하게 연결 해제하고 종료 할 수 있습니다.
관련 문제
- 1. SoundPool 또는 MediaPlayer 큐
- 2. 메시지 큐 또는 스케줄러
- 3. 제거 DONE 작업
- 4. Rabbitmq 또는 Gearman - 작업 큐 선택
- 5. 데이터베이스 큐 및 큐 처리
- 6. ehcache 또는 JCS를 큐 또는 스트리밍 캐싱으로 사용하는 방법은 무엇입니까?
- 7. ios simulate press done/return
- 8. bash "&"print "[1] + Done"없이
- 9. 성공과 $ .ajax의 .done() 메소드의 차이점
- 10. phonegap tel softkeyboard done 조치
- 11. 변수를 $ .ajax()에 전달합니다. done()
- 12. 큐 관리자의 모든 큐 이름 얻기
- 13. 로컬 메시지 큐 서버가없는 원격 메시지 큐
- 14. 에 'done'/ 'then'에 대한 정의가 없습니다.
- 15. 액터 "큐"?
- 16. 큐 충돌
- 17. 콜렉션 큐
- 18. 큐 구현
- 19. 큐 길이
- 20. 세마포 큐
- 21. 재정렬 큐
- 22. 큐 AJAX는
- 23. SwingWorker done()이 두 번 호출 되었습니까?
- 24. perl 프로세스 큐
- 25. FIFO 기반 큐 구현?
- 26. 스택 및 큐, 왜?
- 27. Windows 용 메시지 큐
- 28. 루비 + AMQP : 병렬 처리 큐
- 29. C++ 큐 - 간단한 예제
- 30. Rabbitmq 큐 셔링