현재 JRuby에서 Resque를 사용하고 있고 개발할 때 Worker를 시작하는 두 가지 방법을 사용합니다.스레드 안전성 Resque JRuby에서 작업자를 WAR로 배포했을 때
- 사용 레이크 :
QUEUE=* jruby -J-cp /path/to/library -S rake environment resque:work
- 프로그래밍 방식을 통해 초기화 된시나 (무엇이든 또는) 앱, 결국이있는 클래스를 호출 랙 : 모두 비록
def start
@worker = Resque::Worker.new(@queues)
@worker.verbose = @vervose
@worker.work(@interval)
end
def stop
@worker.try(:shutdown)
end
을 이러한 솔루션은 개발 단계에서 우리에게 받아 들여질 수 있습니다. Tomcat에 배포 할 때 이것이 어떻게 작동 할까에 대한 걱정입니다.
루비에서는 일반적으로 작업자를 생성하거나 악의적으로 만든 다음 모니터링 도구를 사용하여 pid를 감시합니다.
배포시 Workers를 프로그래밍 방식으로 시작하는 것이 합리적입니까? 그것은 자바에서 새 스레드를 시작하거나 jruby 프로세스를 클러 터를 사용하면 안되는 지 궁금합니다. 작업자를 시작하기 위해 석영과 같은 다른 스케줄링 라이브러리를 사용해야합니까? 또는 배포 작업에서 시작되는 레이크 작업은 무엇입니까?
나는 Worker 모델을 만든 다음 db의 작업자를 추적 할 수는 있지만 나에게 의미가 없다.
도움이나 지식을 주시면 감사하겠습니다.
감사합니다.
참고 문헌 :
https://github.com/defunkt/resque
http://rubydoc.info/github/defunkt/resque/master/Resque/
http://blog.thomasmango.com/post/636319317/resque-in-production
https://gist.github.com/486161
JRuby/Rails 응용 프로그램이 WAR 파일을 통해 Tomcat에 배포 된 경우 어떻게 작성 하시겠습니까? 2 개의 Tomcat을 배치해야합니까? 하나는 "레일 서버"이고 다른 하나는 "rake environment resque : work"입니다. 그렇다면 어떻게? –