내 레일 콘솔에서이 일을하고있다 :디버깅 루퍼스 스케줄러
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
는 분 후에 로그에 기록하지 않습니다. 내가 뭘 놓치고 있니? 어떻게 디버깅 할 수 있을까요?
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
EC2 환경에서 개발 환경과 다른 점은 무엇입니까? 어떤 종류의 서버에서 Rails를 실행합니까 (dev 및 EC2)? 스케줄러를 보유하고있는 프로세스가 종료되지 않았는지 확인하십시오 (요청이 분기 된 프로세스로 처리됩니까?) – jmettraux
로그 플러시가 될 수 있다고 생각합니다. 지금은 분명히 볼 수있는 코드를 실행하는 것입니다. 코드 작성 아이디어가 없습니다. 스케줄러 프로세스가 종료되지 않는다는 것을 어떻게 알 수 있습니까? – juanpastas
로그 플러시에 문제가있는 경우 http://stackoverflow.com/questions/2210561/rufus-scheduler-not-logging-in-production을 확인하십시오. ? rq = 1 – jmettraux