2011-08-18 103 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看起来不错。