3

我有一个大约需要 20 到 30 秒的任务。我希望在呈现视图后立即运行此任务。我希望将此任务的输出存储在会话变量中。什么是最简单的方法来做到这一点rails 3。

解释我到底需要什么。我正在向用户显示推文列表(这是呈现的视图)他们必须通过它们。我希望在呈现此视图后调用一个方法,该方法将采用相同的推文并将它们聚类(20-30 秒的过程)。我应该在会话中获得聚类结果,以便可以在下一页中显示它们。

我该怎么做呢?

4

2 回答 2

1

您应该能够在呈现视图的控制器方法中执行此操作。只需在“渲染”调用后添加代码。例如:

  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
于 2012-04-23T06:40:49.433 回答
1

这就是我解决问题的方法

  1. 我用于resque后台任务。在调用渲染之前,我将任务排入队列。
  2. 我对后台工作人员进行了编码,以将集群的结果放入 redis 缓存中。
  3. 应该显示集群的控制器,我从 redis 读取结果,对它们进行反序列化并渲染它们。

它并不完美,但对于研究反馈收集工具来说已经足够快了。

于 2012-10-25T23:58:05.800 回答