我有一项任务需要大约20至30秒。我想让这个任务在渲染视图后立即运行。我希望将此任务的输出存储在会话变量中。什么是最简单的方法来实现它3.如何在视图渲染完成后调用方法3
为了解释我需要的东西。我向用户展示了一个推文列表(这是呈现的视图)他们必须通过他们。我想要一个方法在呈现这个视图后被调用,它将采用相同的推文并将它们集群(20-30秒的过程)。我应该在会话中获得聚类结果,以便我可以在下一页中显示它们。
我该怎么做?
我有一项任务需要大约20至30秒。我想让这个任务在渲染视图后立即运行。我希望将此任务的输出存储在会话变量中。什么是最简单的方法来实现它3.如何在视图渲染完成后调用方法3
为了解释我需要的东西。我向用户展示了一个推文列表(这是呈现的视图)他们必须通过他们。我想要一个方法在呈现这个视图后被调用,它将采用相同的推文并将它们集群(20-30秒的过程)。我应该在会话中获得聚类结果,以便我可以在下一页中显示它们。
我该怎么做?
这是我如何解决我的后台任务所用resque
问题
这并不完美,但对于研究反馈收集工具来说足够快。
您应该可以在呈现视图的控制器方法中执行此操作。只需在'render'调用后添加代码即可。例如:
def index
@tweets = Tweet.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @tweets }
end
# do something with tweets
puts "#{@tweets}"
end
如果视图已被渲染,该任务如何将结果存储到会话中? (请记住,会话现在默认作为_cookie_处理......) – sarnold 2012-04-23 00:00:13
在我的情况下,会话由active_record处理。即使我可以运行一种方法,我也可以。我现在将把结果存储在一些简单的tmp文件中。 – shishirmk 2012-04-23 00:04:55
我认为我的答案是使用Resque或任何后台作业。 – shishirmk 2012-10-25 23:53:30