2010-06-17 71 views
0

我使用LoadData.send_later(:test)調用函數。 LoadData是我的課,測試是我的方法。耙子工作:工作正常。腳本/ delayed_job開始的問題

它運行良好,而我正在運行耙工作:工作。

但是,當我運行腳本/ delayed_job的啓動或運行那個時候delayed_job.log顯示錯誤,如

TEastern Daylight Time: *** Starting job worker delayed_job host:KShah pid:5968 
TEastern Daylight Time: * [Worker(delayed_job host:KShah pid:5968)] acquired lock on LoadData.load_test_data_with_delayed_job 
Could not load object for job: uninitialized constant LoadData 
TEastern Daylight Time: * [JOB] delayed_job host:KShah pid:5968 completed after 0.0310 
TEastern Daylight Time: 1 jobs processed at 10.6383 j/s, 0 failed ... 

任何解決方案?

回答

1

嘗試將LoadData包含在初始化程序中。我似乎記得DelayedJob包括activerecord類,notifiers等,但不是自定義類。就我個人而言,我會把這個類放在您的模型目錄中。它仍在處理數據,即使它不是主動記錄。

+0

是的,我已經把LoadData放入初始化程序中,現在它工作的很好... – 2010-06-17 22:00:18

+0

如果這對你工作正常,你能接受我的答案嗎? :) 另外,只是可以肯定,我的意思是在初始化程序中創建一個文件delayed_job.rb,並在其中包含「包含LoadData」行。 – mark 2010-06-17 22:09:10

+0

我已經在delayed_job.rb中包含了LoadData,並且我收到了這個錯誤「rake aborted! 錯誤的參數類型Class(expected Module)」。 – 2010-06-18 15:45:26

0

試着這樣做:

Delayed::Job.enqueue LoadData.test 

而且,我花了一段時間才能實現......如果你更改了代碼重啓耙的工作一大疑難雜症:努力!

+0

得到同樣的錯誤呢..我有我的lib/tasks文件夾中的LoadData類。它會造成問題嗎?對此有何建議? – 2010-06-17 19:36:48

+0

當您正常運行任務而不是通過DJ運行時會發生什麼? – Tom 2010-06-17 19:55:03