gpt4 book ai didi

ruby-on-rails - 完成作业后如何更新部分

转载 作者:行者123 更新时间:2023-12-03 15:07:15 25 4
gpt4 key购买 nike

这是我在这里的第一篇文章,但我已经从该网站获得了一些重要信息。所以我认为有人可以提供帮助。

在我看来,我有一个表单,一旦提交, Controller 就会将工作传递给 navvy它真的很好用。问题是,一旦 navvy 完成工作,我想在同一页面上使用新信息更新表单的另一个部分。所以在我的 Controller 中我有:

Navvy::Job.enqueue( GetZip, :get_zip,  @series, :job_options => {:priority => 8})

然后在我位于 config/initializers/navvy.rb 的 navvy block 中,我有:

class GetZip
def self.get_zip(params)
fetch = Fetch.new
fetch.get_zip(params)
# What to put here to update partial #
end
end

按预期工作。我只是不确定如何在导航工作完成后更新我 View 中的部分内容。任何建议将不胜感激。

最佳答案

这里的问题是,一旦您启动了后台进程,您就不再受制于该用户的请求(这显然是后台进程的重点)。

因此您的后台作业不知道用户在此期间正在做什么。例如,他们可以导航到另一个页面,甚至离开您的网站。

您可以让您的后台作业在数据库中创建一条记录,表明它已开始处理并在处理完成时更新此状态。这样,当用户下次刷新页面时,您可以检查该记录的状态,并且可以相应地更新部分内容。

如果您希望页面自动更新,您可以使用 ajax 请求继续轮询该记录的状态。在初次提交表单时,您可以开始投票,而不是让它一直运行。

关于ruby-on-rails - 完成作业后如何更新部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683733/

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