我有一个大约需要 20 到 30 秒的任务。我希望在呈现视图后立即运行此任务。我希望将此任务的输出存储在会话变量中。什么是最简单的方法来做到这一点rails 3。
解释我到底需要什么。我正在向用户显示推文列表(这是呈现的视图)他们必须通过它们。我希望在呈现此视图后调用一个方法,该方法将采用相同的推文并将它们聚类(20-30 秒的过程)。我应该在会话中获得聚类结果,以便可以在下一页中显示它们。
我该怎么做呢?
我有一个大约需要 20 到 30 秒的任务。我希望在呈现视图后立即运行此任务。我希望将此任务的输出存储在会话变量中。什么是最简单的方法来做到这一点rails 3。
解释我到底需要什么。我正在向用户显示推文列表(这是呈现的视图)他们必须通过它们。我希望在呈现此视图后调用一个方法,该方法将采用相同的推文并将它们聚类(20-30 秒的过程)。我应该在会话中获得聚类结果,以便可以在下一页中显示它们。
我该怎么做呢?
您应该能够在呈现视图的控制器方法中执行此操作。只需在“渲染”调用后添加代码。例如:
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
这就是我解决问题的方法
resque
后台任务。在调用渲染之前,我将任务排入队列。它并不完美,但对于研究反馈收集工具来说已经足够快了。