我正在使用delayed_job gem在我的rails應用程序中發送電子郵件。 delayed_job運行良好,但從最近5天開始,它不工作,並在delayed_job.log文件中拋出以下錯誤。在服務器上的生產環境中延遲作業失敗
2011-10-09T01:53:04+0530: [Worker(delayed_job host:backupserver pid:23953)] Syck::DomainType#private_group_join_request failed with NoMethodError: undefined method private_group_join_request' for # - 11 failed attempts 2011-10-09T01:53:04+0530: [Worker(delayed_job host:backupserver pid:23953)] 1 jobs processed at 1.4503 j/s, 1 failed ... 2011-10-09T01:54:40+0530: [Worker(delayed_job host:backupserver pid:23953)] Syck::DomainType#contact_us_email failed with NoMethodError: undefined method contact_us_email for # - 11 failed attempts 2011-10-09T01:54:40+0530: [Worker(delayed_job host:backupserver pid:23953)] 1 jobs processed at 4.3384 j/s, 1 failed ...
以下是我稱呼發送電子郵件的延遲作業的示例之一。
UserMailer.delay(:run_at => 10.seconds.from_now).contact_us_email(self)
我開始延遲工作與
RAILS_ENV=production script/delayed_job start
它在開發以及生產環境中正常工作我的本地機器上。
環境我正在使用Rails應用程序。
- 滑軌3.0.8
- 紅寶石1.9.2在Linux操作系統(Ubuntu的)
- 耙0.9.2
- delayed_job的2.1.4
這是相同 Undefined Method Error when creating delayed_job workers with script/delay_job
但解決方案不適合我。
「未定義foo方法爲#」是奇 - 通常那種事是說了零未定義foo方法,然後問題是函數被調用nil對象上。你有什麼想法在你的環境中「#」是指什麼? –
我發現延遲工作失敗的原因。按照http://stackoverflow.com/questions/6766431/undefined-method-error-when-creating-delayed-job-workers-with-script-delay-job給出的失敗的原因是libyaml包。軟件包已安裝在服務器上,但未安裝在本地計算機上。現在我已經在我的本地機器上安裝了相同的軟件包,並且它給了我相同的錯誤。這個錯誤發生在對數據庫進行反序列化時。 –
Kaplesh:你不妨回答你自己的問題,這樣它就顯示爲已回答,其他人將從看到你如何解決問題中受益。 –