저는 ZMQ에서 새롭고 NodeJS 바인딩으로 작업하고 있습니다. PUSH/PULL
소켓을 사용하는 응용 프로그램이 있습니다. 한 쪽에서 PULL
소켓을 통해 수신하고 처리하는 일부 노드에 대한 데이터는 PUSH
입니다. 때로는 응용 프로그램의 하나 이상의 노드를 죽여야 할 수도 있습니다. 그리고 처리 할 소켓의 노드가 여전히 남아있을 수 있습니다. 이 데이터를 잃고 싶지 않아 ZMQ의 PULL
소켓 큐에 액세스하여 여전히 처리 할 메시지가 있는지 확인하는 방법이 있는지 궁금합니다.ZMQ 소켓 큐
ZMQ와 NodeJS 바인딩의 스펙에서 실제로 아무것도 찾을 수 없으므로 전체 개념이 잘못되었을 수 있습니다.
글쎄, 고마워, 그게 내가 생각한거야. 내 질문은 "소켓을 죽이기 전에 여전히 처리 할 메시지가 있는지 어떻게 확인합니까?"입니다. – Masiar
아키텍처에 따라 크게 달라집니다. 연속적으로 푸시 프로그램을 보내는 경우 대기열이 비어있는 것을 보장하지 않습니다. 푸셔가 세션이 끝날 때를 알면이를 알려주는 "kill"메시지를 추가 할 수 있습니다. –
푸시 버튼은 물건을 계속 보내지 만, "강제 종료"절차를 시작할 때마다 푸시 버튼이 작업자로부터 바인딩 해제되므로 작업자는 더 이상 메시지를받지 못하고 일부는 여전히 대기열에서 처리되지 않을 수 있습니다. 대기열의 상태를 확인하고 프로세스를 종료 할 적절한 순간을 잡아야했습니다. – Masiar