【发布时间】:2014-03-14 20:22:16
【问题描述】:
我编写了一个 Rails 应用程序,它有一组学生数据库,并且该数据库在 rake 任务的帮助下每天更新。我的意思是这个任务更新对应于每个学生 id 的条目,即第一个学生 id 1,然后是学生 id 2,依此类推,如下所示:
task :update_db => :environment do
student_ids = Student.map{|x|x.id}
student_ids.each do |sid|
begin
StudentHelper.update_db_entry(sid)
rescue Exception => e
Rails.logger.info "#{e.message}"
Rails.logger.info "#{e.backtrace.inspect}"
end
end
end
这里一个学生在数据库中的条目是独立于其他学生的,所以看起来我们可以同时更新多个学生的条目。我认为这只能通过多线程实现。
我不知道如何继续,我不知道如何在 ruby on rails 应用程序中实现多线程。
【问题讨论】:
-
这里可能不需要多线程,除非您遇到严重的性能问题。此外,大量线程会占用您的数据库,这意味着使用该数据库的其他应用程序的响应速度会降低
标签: ruby-on-rails multithreading