我有一份工作可以創建.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
基本上,一切運行在單個服務器上時,按預期工作。生產環境已擴展到平衡器後面的兩臺服務器。有一個夜間任務檢查是否有任何導出在隊列中,如果是,它會生成文件。此任務始終僅在一個實例上運行。
我最好是從其他服務器創建一個符號鏈接到保存文件的目錄嗎?任何想法,將不勝感激。