我有一份工作可以创建.csv文件并将其保存在rails根目录下的exports中。我也有一个控制器,像这样下载这些文件:如何在多服务器环境中下载生成的.csv文件
def download_export
@export = Export.find(params[:id])
export_file = "#{RAILS_ROOT}/exports/#{@export.name.gsub(/\s/,'_')}_#{@export.id}.csv"
if File.exists?(export_file)
options = {:filename => "Export (#{@export.name.gsub(/\s/,'_')}_#{@export.id}).csv", :type => "text/csv"}
options = options.merge({:x_send_file => true}) if Rails.env != "development"
send_file export_file, options
else
flash[:notice] = "<h3>Export data is not available.</h3>"
redirect_to :action => "index"
end
end
基本上,一切运行在单个服务器上时,按预期工作。生产环境已扩展到平衡器后面的两台服务器。有一个夜间任务检查是否有任何导出在队列中,如果是,它会生成文件。此任务始终仅在一个实例上运行。
我最好是从其他服务器创建一个符号链接到保存文件的目录吗?任何想法,将不胜感激。