我正在开发基于rails的应用程序来处理需要时间的大文件。该函数的主要部分是.each_with_index
循环。
端点的控制器如下所示:
DEF
import
FileImporter.import()
render json: 1
end
我想从循环中公开索引变量并不断用它更新屏幕,这样我就可以建立一个百分比更新栏来显示进度。
在Java中,有一种publish
方法,工作者线程可以出于这种目的而间歇性地发布这些东西。 Ruby中是否有等价物?
也可能我需要在一个单独的线程上运行import()
方法,然后网络服务器需要支持。有什么建议吗?
答案 0 :(得分:2)
如果你有一个长期工作,那么为这项工作使用一个实际的工作系统可能是有意义的。 (例如,Sidekiq,Resque等)该作业可以将其进度发布到已知位置,例如数据库字段。
然后你可以有一个Rails端点来查询该字段的值并返回它。在前端添加一些JavaScript,您可以在UI中定期更新。