2013-08-07 4 views
1

내 레일 콘솔에서이 일을하고있다 :디버깅 루퍼스 스케줄러

require 'rubygems' 
require 'rufus/scheduler' 

def scheduler 
    @scheduler ||= Rufus::Scheduler.start_new 
end 

을 내가 콘솔에서 실행 :

Service.log.debug 'scheduler works' 

job = scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end 
job.schedule_info 
=> Wed, 07 Aug 2013 16:14:46 UTC 00:00 

scheduler 다른 파일에 정의되어 있습니다 서비스 로그 파일이 기록됩니다.

문제
scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end 

는 분 후에 로그에 기록하지 않습니다. 내가 뭘 놓치고 있니? 어떻게 디버깅 할 수 있을까요?

실제 문제

나는 종료하고 예약 된 작업이 실행되지 않는 것 같습니다 EC2에서 서버가 있습니다.

내 개발 환경에서 1 분 안에 실행되는 작업으로 테스트하고 작동합니다. 이것은 서버가 아닌 콘솔에 있습니다. 콘솔에서, 내가 언급 한 것처럼 실패하고있다.

데브 환경

루비 1.9.3p327 (2012년 11월 10일 수요일 수정 37,606) x86_64에-darwin12.0.0]

얇은 1.5.0

원격 환경

루비 1.9 .3p429 (2013-05-15 개정판 40747) [x86_64-linux]

apache2 2.2.22

승객 4.0.5

보석

레일 3.2.8

고전의 루퍼스 - 스케줄러 2.0.18

+0

EC2 환경에서 개발 환경과 다른 점은 무엇입니까? 어떤 종류의 서버에서 Rails를 실행합니까 (dev 및 EC2)? 스케줄러를 보유하고있는 프로세스가 종료되지 않았는지 확인하십시오 (요청이 분기 된 프로세스로 처리됩니까?) – jmettraux

+0

로그 플러시가 될 수 있다고 생각합니다. 지금은 분명히 볼 수있는 코드를 실행하는 것입니다. 코드 작성 아이디어가 없습니다. 스케줄러 프로세스가 종료되지 않는다는 것을 어떻게 알 수 있습니까? – juanpastas

+0

로그 플러시에 문제가있는 경우 http://stackoverflow.com/questions/2210561/rufus-scheduler-not-logging-in-production을 확인하십시오. ? rq = 1 – jmettraux

답변

2

:

https://groups.google.com/group/rufus-ruby/search?group=rufus-ruby&q=passenger&pli=1 https://groups.google.com/forum/#!searchin/rufus-ruby/passenger (새 구글 그룹)

(불행히도, 토론에서 링크의 대부분은 사망 (4 년 전 ...))

어떻게 행동하는지 확인하려면 여객 구성을 확인해야합니다. rufus-scheduler 스레드가 시작된 프로세스가 어떻게 든 유지되는지 확인해야합니다.

여객 구성/매뉴얼을 읽고 시간을 시험해보십시오.

나는 막연하게 사람들은 도움이 될 수 있음을 기억

http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPoolIdleTime http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMinInstances

Rufus Scheduler not running에서 Ajet의 대답은, 그가 흥미 옹호한다 :

RailsAppSpawnerIdleTime 0 
PassengerMinInstances 1 
+0

나는 아파치 conf에 이것을 가지고있다 :'# 응용 프로그램이나 spawner를 다시 시작하지 마라. PassengerPoolIdleTime 0 PassengerMaxPreloaderIdleTime 0', 어쨌든 읽는다. 그냥 게시하는 경우 도움이 될 경우 – juanpastas

+0

첫 번째 링크는 나를위한 리디렉션 루프가 있습니다 – juanpastas

+0

나를 위해 잘 작동합니다. 여기에 더 최신 버전이 있습니다. https://groups.google.com/forum/#!searchin/rufus- 루비/승객 – jmettraux

2

내 아파치 가상 호스트에 "PassengerSpawnMethod direct" setting을 사용했다 내 Dashing 응용 프로그램 (rufus-scheduler를 사용하는)이 제대로 작동하게하려면