2011-11-05 6 views
5

delayed_job을 사용하고 있는데 rake 작업을 사용하여 작업을 실행할 수 있습니다. 작업은 있지만 데몬 버전을 사용하면 프로세스 목록에 표시되지만 아무것도 수행하지 않습니다.Delayed_job 데몬이 개발 중에 실행되지 않습니까?

내가 사용 :

  • 레일 (3.0.9)
  • delayed_job (2.1.4)
  • 데몬 (1.0.10)

내가 실행 해요 delayed_job 다음을 사용 :

unix>RAILS_ENV=development script/delayed_job start 
+0

'RAILS_ENV = 개발 스크립트/delayed_job의 status'의 결과가 무엇 : 당신은 다음과 같습니다 뭔가를 rake jobs::workoff을 실행하고 얻을 수 있어야

? – Ernest

+0

데몬 보석없이 실행 해 보셨습니까? – Ernest

+0

Gemfile.lock은 데몬이 필수 종속성임을 명시하지만 명시 적으로 사용을 제거하고 시도해 보겠습니다. 필자가 그랬던 이유는 시스템에 데몬 1.1.4가 있었기 때문에 Daemonize가 특정 버전 (데몬 용 1.0.10을 사용하는 많은 StackOverflow 제안을 사용)을 사용하도록 시도했기 때문입니다. – Aditya

답변

3

형성.

작업이 데이터베이스에 추가 되었습니까? 작업에 오류가 있습니까?

이미 언급 한대로 RAILS_ENV=development script/delayed_job status의 결과는 무엇입니까?

둘째로, 가장 일반적인 문제점 인 Wiki 페이지를 살펴 보았습니까?

https://github.com/collectiveidea/delayed_job/wiki/Common-problems

+0

작업이 데이터베이스에 추가됩니다. 이들은 데몬에 의해 처리되지 않지만 레이크 작업 : 작업에 의해 처리됩니다. 지연된 작업 상태 메시지를 확인하지만 실행 중임을 확인합니다 (두 번 시작하면 프로세스가 이미 실행 중입니다) + delayed_job.log의 PID가 루비 delayed_job 프로세스의 PID와 일치합니다. – Aditya

+0

상태는'delayed_job : running [pid 1473]'을 반환합니다. – Aditya

3

그것은 사용자 정의 작업 클래스 파일을로드 문제가 될 수 있습니다. 이를 테스트하려면 다음을 시도하십시오.

  • 콘솔 rails console --sandbox을 입력하십시오.
  • job = Delayed::Job.first 테이블에 직업이 있는지 확인하십시오.
  • 시도 YAML.load(job.handler). ArgumentError: undefined class/module MyCustomClass과 같은 오류가 발생하는 경우 사용자 정의 작업을로드하는 데 문제가있을 수 있습니다.
  • 여전히 레일 콘솔에있는 require 'My_Custom_Class을 실행하십시오. 그런 다음 YAML.load(job.handler) 명령을 다시 실행하십시오. 이 객체가 적절한 객체를 반환하면 확실히 클래스 로딩 문제가됩니다.

문제를 해결하려면 config/initializers/custom.rb 파일을 만들고 require 'My_Custom_Class'을 입력하십시오.

[Worker(host:my.host pid:5085)] Starting job worker 
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774 
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ... 
[Worker(host:my.host pid:5085)] No more jobs available. Exiting 
관련 문제