Ruby循环索引变量不断发布

时间:2014-11-26 13:25:49

标签: ruby-on-rails ruby multithreading

我正在开发基于rails的应用程序来处理需要时间的大文件。该函数的主要部分是.each_with_index循环。

端点的控制器如下所示:

DEF

 import
  FileImporter.import()
  render json: 1
end

我想从循环中公开索引变量并不断用它更新屏幕,这样我就可以建立一个百分比更新栏来显示进度。

在Java中,有一种publish方法,工作者线程可以出于这种目的而间歇性地发布这些东西。 Ruby中是否有等价物?

也可能我需要在一个单独的线程上运行import()方法,然后网络服务器需要支持。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果你有一个长期工作,那么为这项工作使用一个实际的工作系统可能是有意义的。 (例如,Sidekiq,Resque等)该作业可以将其进度发布到已知位置,例如数据库字段。

然后你可以有一个Rails端点来查询该字段的值并返回它。在前端添加一些JavaScript,您可以在UI中定期更新。