J'ai une tâche rake loaddata.rake.télécharger le fichier csv avec le travail retardé
require File.join(File.dirname(__FILE__), 'load_test_data.rb')
namespace :test do
desc "Insert test data into the database"
task(:loadtest => :environment) do
puts "environment = #{RAILS_ENV}"
puts "load_test_data "; load_test_data
puts "DONE!"
end
end
j'ai une autre load_test_data.rb fichier là, j'ai des fonctions de lecture des données de fichiers csv et stocker dans la base de données. Et j'appelle ce fichier de ma tâche rake.
This is my load_test_data.rb
require "faster_csv"
def load_test_data
puts "test: Balance"
directory = "test/data"
name = "balances.csv"
lines = get_lines_from_csv(directory,name,"snapshot_errors")
unless lines.nil?
row_number = 1
lines.each do |row|
unless row.header_row?
begin
attributes = row.to_hash
attributes[:balance_name_id] = BalanceName.find(:first, :conditions => ["name = ?", attributes[:balance_name]]).id
attributes.delete(:balance_name)
Balance.create! attributes
rescue
store_error_in_table(row.fields.to_csv,name,row_number,"snapshot_errors")
end
row_number += 1
end
end
end
end
tâche Rake fonctionne bien avec mon code ..
Maintenant, je veux appeler cette fonction de ma tâche Rake avec travail retardé .. Y at-il de toute façon je peux le gérer ??