2011-08-18 101 views
2

我試圖用延遲作業保存新記錄。代碼問題如下:延遲作業不保存新記錄

#method being called: 
ibo.add_to_database(params[:url]) 

#method definition 
def add_to_database(url) 
    feed = Feeds.new do |f| 
    f.url = url 
    f.title = self.feed_title if self.feed_title 
    f.link = self.site_link if self.site_link 
    f.image = self.feed_image if self.feed_image 
    end 
    feed.save! 
end 
handle_asynchronously :add_to_database 

我絕對沒有錯誤,並將作業從數據庫中刪除,因爲它應該是。除了Feeds模型沒有改變之外。任何人有任何想法是什麼給?

+0

你在檢查錯誤? – Eric

+0

我已經執行了代碼,沒有延遲工作,並且工作完美。使用delayed_job時,如果出現錯誤,應嘗試向數據庫中的作業註冊失敗的嘗試。這沒有發生...... – providence

+0

對此的任何更新,我有完全相同的情況,我得到Delayed :: DeserializationError。 –

回答

2

delayed_job的運行作爲守護線程,所以要做的第一件事是檢查是否它正在運行:

ps ax | grep delayed_job 

接下來的事情我會檢查實際延遲作業的日誌,它可能會你有錯誤的描述:

less log/delayed_job.log 

除此之外,你的代碼sniplet看起來不錯。