ruby-on-rails – 如何知道delayed_job何时完成了它的工作?
发布时间:2020-12-17 02:15:48 所属栏目:百科 来源:网络整理
导读:我目前在我的模型中有一个方法来刮取网站并将记录插入数据库. def self.scrape #scrape #insert into databaseend 我设置了一个控制器方法来调用它: def scrape Website.send_later(:scrape)end 抓取工作正在运行,并通过控制台运行测试.但是,通过调用控制器
我目前在我的模型中有一个方法来刮取网站并将记录插入数据库.
def self.scrape #scrape #insert into database end 我设置了一个控制器方法来调用它: def scrape Website.send_later(:scrape) end 抓取工作正在运行,并通过控制台运行测试.但是,通过调用控制器方法激活它来运行它不起作用. 我尝试过rake的工作:工作说如下: [Worker(host:thorpe-desktop pid:6962)] Starting job worker [Worker(host:thorpe-desktop pid:6962)] Class#scrape completed after 0.5068 [Worker(host:thorpe-desktop pid:6962)] 1 jobs processed at 0.5898 j/s,0 failed ... 我没有在数据库表中看到应该插入数据的任何内容. 解决方法
作为判断作业是否已运行并完成的方法,您可以使用delayed_job提供的钩子将小记录写入job_status模型.在这种情况下有一些可能有用的钩子,最有趣的是:
def after(job) record_stat 'newsletter_job/after' end 有类似的成功和完成,你可以使用类似的.我意识到这可能比你想要的更重,但它会做你想要的,可能是值得的. delayed_job表似乎没有足够的信息来保存您想要的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |