짧은 버전 : 원격 프로 시저 호출 상황에서 Pika를 차단하지 못하게하려면 어떻게합니까?오래 근무하는 소비자의 Pika와 동시성을 제공하려면 어떻게해야합니까?
긴 버전 다음 새앙 토끼의 예
이없음 내 사용 사례를 보여줍니다.
AMQP (RabbitMQ, Pika)를 통해 다른 프로세스/기계와 통신하는 토네이도 서버가 있습니다. 이러한 다른 프로세스는 잘 정의되어 있지 않지만 대부분 데이터를 반환합니다 (RPC example on RabbitMQ's website 참조). 때로는 많은 양의 정보를 처리하는 데 오랜 시간이 걸릴 수도 있지만 작은 요청이 처리되는 것을 완전히 차단해서는 안됩니다. 또는 원격 요청이 웹 요청을 발송했기 때문에 원격 서버가 차단되었을 수도 있습니다. 웹 서버와 비슷하지만 HTTP 대신 AMQP를 사용하십시오.
Pika 문서에서는 스레드로부터 안전하지 않다고 주장하므로 연결을 여러 스레드 (또는 프로세스)에 전달할 수 없습니다. 내가하고 싶은 일은 새로운 프로세스를 시작하고 Pornoopop에 소켓 이벤트를 추가하는 것입니다. Tornado와 함께 할 수 있습니다. Pika IOLoop은 Tornado IOLoop과 많이 다르며 여러 핸들러를 추가하는 것을 지원하지 않습니다. 하나의 소켓에서 하나의 "폴러"를 사용하여 작동하는 것으로 보입니다.
IOLoop 만 사용하기 때문에이 패키지에 토네이도 패키지가 필요하지 않도록하고 싶습니다. 그것은 의문의 여지가 아니지만, 내 다른 옵션이 무엇인지, 또는 어떻게 든 여러 Pika IOLoops/폴러를 연결하여 내 문제에 대한 해결책이 있는지 알고 싶습니다. RabbitMQ의 문서에 따르면 근로자는 더 많은 것을 추가함으로써 종종 "확장"될 수 있다고합니다. 내가 들어오는 모든 요청에 대한 연결을 만드는 것을 피하고 싶다.