【发布时间】:2014-01-30 06:31:45
【问题描述】:
我的 sinatra 应用程序必须解析一个 ~60MB 的 XML 文件。该文件几乎不会更改:在每晚的 cron 作业中,它会被另一个文件覆盖。
是否有技巧或方法将解析后的文件作为变量保存在内存中,以便我可以在传入请求时从中读取,但不必为每个传入请求一遍又一遍地解析它?
一些伪代码来说明我的问题。
get '/projects/:id'
return @nokigiri_object.search("//projects/project[@id=#{params[:id]}]/name/text()")
end
post '/projects/update'
if params[:token] == "s3cr3t"
@nokogiri_object = reparse_the_xml_file
end
end
我需要知道的是如何创建这样的@nokogiri_object,以便它在 Sinatra 运行时持续存在。这有可能吗?或者我需要一些存储空间吗?
【问题讨论】: