gpt4 book ai didi

ruby-on-rails - 如何知道delayed_job 什么时候完成了它的工作?

转载 作者:行者123 更新时间:2023-12-04 20:53:51 28 4
gpt4 key购买 nike

我目前在我的模型中有一种方法可以抓取网站并将记录插入数据库。

def self.scrape
#scrape
#insert into database
end

我设置了一个 Controller 方法来调用它:
def scrape
Website.send_later(:scrape)
end

抓取工作正常,并通过控制台运行对其进行了测试。但是,通过调用 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 ...

我在应该插入数据的数据库表中看不到任何内容。

最佳答案

作为确定作业是否已运行并完成的一种方法,您可以使用延迟作业提供的 Hook 将小记录写入作业状态模型。在这种情况下,有一些钩子(Hook)可能有用,最有趣的是:

def after(job)
record_stat 'newsletter_job/after'
end

有类似的成功和完成,你可以类似地使用。我意识到这可能比你想要的要重,但它会做你想做的事,并且可能值得付出代价。 delay_job 表似乎没有像您想要的那样包含足够的信息。

关于ruby-on-rails - 如何知道delayed_job 什么时候完成了它的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063760/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com