Mam problem z utworzeniem poprawnie watkow dla metody:
def self.prepare_results_for_scripts(scripts, path)
threads = []
scripts.find_each do |script|
threads << Thread.new(script) { |qa_script|
begin
puts "#{qa_script.title} in progresss..."
self.process_script(qa_script, path)
rescue DBI::DatabaseError => e
admin_email = EMAIL_CONFIG['login']
err_message = "An error occured with script: " + "#{qa_script.title} - " + "#{e.errstr}"
AlertMailer.send_alert(admin_email, err_message).deliver
next
end
}
end
threads.each { |aThread| aThread.join }
end
W metodzie tej tworze tablice watkow z ktorych kazdy wywoluje metode process_script
def self.process_script(script, path)
users = User.find_script_users(script)
report_title = script.title
if script.email_form?
result_array, name_of_columns = self.return_database_result(script)[0..1]
users.each { |user| ReportMailer.send_html_report_email(user, name_of_columns, result_array, report_title).deliver }
else
report_attachment_name, path_to_excel_file = self.create_excel_file(script, path)
users.each { |user| ReportMailer.send_excel_report_email(user, report_attachment_name, path_to_excel_file, report_title).deliver }
end
end
Niestety nie wszystkie watki sa ukonczone tzn ostatni raport nie jest wyslany z powodu tego bledu:
[code]1 in progresss…2 in progresss…
3 in progresss…
4 in progresss…5 in progresss…
6 in progresss…
Processing script: 1Processing script: 2
Processing script: 3Processing script: 4
Processing script: 5
Processing script: 6================================================================================
scheduler caught exception:
Expected /home/lukasz/Projects/sp-qas/qas/app/mailers/report_mailer.rb to define ReportMailer
/usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:503:in load_missing_constant' /usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:192:in
block in const_missing’
/usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:190:in each' /usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:190:in
const_missing’
/usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:514:in load_missing_constant' /usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:192:in
block in const_missing’
/usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:190:in each' /usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:190:in
const_missing’
/home/lukasz/Projects/sp-qas/qas/lib/report.rb:51:in block in process_script' /usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activerecord-3.2.2/lib/active_record/relation/delegation.rb:6:in
each’
/usr/local/rvm/gems/ruby-1.9.3-p0@sp_qas/gems/activerecord-3.2.2/lib/active_record/relation/delegation.rb:6:in each' /home/lukasz/Projects/sp-qas/qas/lib/report.rb:51:in
process_script’
/home/lukasz/Projects/sp-qas/qas/lib/report.rb:32:in `block (2 levels) in prepare_results_for_scripts’
^C>> Stopping …[/code]
W wyniku zostaje przeslanych tylko 5 raportow zamiast 6