Tee*_*eej 5 screen-scraping ruby-on-rails delayed-job
我的模型中目前有一种方法可以抓取网站并将记录插入数据库。
def self.scrape
#scrape
#insert into database
end
Run Code Online (Sandbox Code Playgroud)
我设置了一个控制器方法来调用它:
def scrape
Website.send_later(:scrape)
end
Run Code Online (Sandbox Code Playgroud)
抓取工作正常,并且已通过控制台运行它进行了测试。但是,通过调用controller方法激活它来运行它是行不通的。
我试过rake jobs:work
说以下内容:
[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 ...
Run Code Online (Sandbox Code Playgroud)
我在数据库表中看不到应该插入数据的任何内容。
小智 2
作为确定作业是否已运行并完成的一种方法,您可以使用delayed_job提供的挂钩将一条小记录写入job_status模型。在这种情况下,有一些钩子可能有用,最有趣的是:
def after(job)
record_stat 'newsletter_job/after'
end
Run Code Online (Sandbox Code Playgroud)
有类似的成功和完成,您可以类似地使用。我意识到这可能比您想要的重,但它会满足您的需求并且可能值得付出代价。Delayed_job 表似乎没有包含足够的信息来满足您的需求。
归档时间: |
|
查看次数: |
4108 次 |
最近记录: |