Ruby on rails 刷新状态更新

Ruby on rails 刷新状态更新,ruby-on-rails,redis,ruby-on-rails-4,resque,Ruby On Rails,Redis,Ruby On Rails 4,Resque,在rails4应用程序中,我有一个很长的任务,需要几个小时才能完成,就像railscasts 271一样 控制器中的创建操作如下所示: def create @longstuff = Longstuff.new(params[:longstuff]) if @longstuff.save Resque.enqueue(LongStuffHandler, @longstuff.id) redirect_to @longstuff, :notice =&g

在rails4应用程序中,我有一个很长的任务,需要几个小时才能完成,就像railscasts 271一样

控制器中的创建操作如下所示:

  def create
    @longstuff = Longstuff.new(params[:longstuff])
    if @longstuff.save
      Resque.enqueue(LongStuffHandler, @longstuff.id)
      redirect_to @longstuff, :notice => "Success."
    else
      render 'new'
    end
  end
我想向用户更新队列的状态,并向他提供有用的信息统计信息、运行时间、进度条等

我的想法是在新视图中创建一个div,该div每3秒用javascript自动刷新一次,并显示LongStuffHandler类提供的一些内容

到目前为止,我已经能够实现让LongStuffHandler类向javascript加载的文件写入一些html。 这会导致几个问题,例如每秒写入文件10次不太理想

我希望LongStuffHandler类能够实时导出一些变量,并使它们对新视图可用,这样只需重新加载一个部分就可以使我的页面看起来更新。 例如,LongStuffHandler类有一个名为@lastlog的变量,使其可用于新视图,其中有一个div,如下所示,由javascript自动更新:

<div class="lastlog">
  <h2>Last Log</h2>
  <p><%= @lastlog %></p>
</div>
后台作业是否可以导出这样一个变量,视图是否可以导入它