레일즈 앱과 NodeJS 서버 세트가 있습니다. 나는 그 NodeJS 서버를 사용하여 PhantomJS를 사용하여 URL을 구문 분석합니다. 내 Rails 응용 프로그램에서 URL을 파싱 할 준비가 된 NodeJS 서버를 알고 파싱되면 결과가 비동기 적으로 Rails 서버로 다시 전송됩니다.여러 NodeJS 서버로 작업을 보내는 레일스에 우선 순위 대기열을 갖는 방법은 무엇입니까?
내 문제는 일부 NodeJS 서버가 구문 분석 할 준비가 될 때까지 구문 분석해야하는 URL이 대기열에 대기하도록 Rails에 대기열이 있어야하는 경우입니다. 그래서, 내 질문은 :
나 큐와 NodeJS 서버의 상태를 계속 확인하자 자유 해당 큐에서 작업을 보낼 것입니다/루비 레일에서 좋은 우선 순위 큐 솔루션이 될 것입니다 무엇 NodeJS 서버.
이전에는 Sidekiq을 사용했지만이 경우 Worker는 여기서는 값 비싼 작업을하지 않고 NodejS 서버 중 하나에 Rails 대기열을 위임하기 때문에이 경우에는 필요하지 않다고 생각합니다.
답변 해 주셔서 감사합니다. 다음 질문은 우선 순위 대기열이 설정되면 어떻게 작업을 폴링합니까? 대기열에 무언가가 있는지 계속 확인하는 어떤 종류의 cron이 있습니까, 아니면 어떻게합니까? –
블로킹 작업의 장점은 폴링 할 필요가 없다는 것입니다. 클라이언트가 BLPOP 명령을 실행하면 메시지가 나타날 때까지 유휴 상태 (더 잘 알려진 블로킹, 따라서 이름)가됩니다. pastebin에 다음 예제 코드가 있습니다. http://pastebin.com/pEUW0G56 직접 시도하지 않았으므로 볼 수는 없지만,보고 나서 볼 수 있습니다. 개념은 바른 길에있다. – Fitzsimmons
메시지가 표시되면 누가 그것을 관리합니까? 그 일이 언제 올바르게 될 때 관리 할 수있는 수업이 필요합니까? –