与establish_connection和rake任务一起出现问题

时间:2015-08-06 08:05:49

标签: ruby-on-rails ruby ruby-on-rails-4 rails-activerecord rake-task

我有一个模型,我使用establish_connection连接到其他应用程序的不同数据库(让它命名为remote database)。

示例:

class User < ActiveRecord::Base

  establish_connection(some_database_credential_hash)
  self.class_name = "members"

end

并且在生产环境中我正在运行一个使用User class的rake任务。我的问题是,如果每小时运行相同的rake任务,它是否会尝试每次都对新成员表进行新连接远程数据库增加该数据库的负载和池?如果是的话,我该如何避免呢?请建议。

1 个答案:

答案 0 :(得分:0)

评论中回答了这个问题:

  • 类的主体中的任何东西都是在初始化环境时运行的,每次运行rake任务时都会重新执行。
  • 拆除rails环境的一部分是关闭与数据库的任何打开连接。
  • 除非rake任务被粗暴地退出,否则建立的连接将被关闭。
  • 这可以通过登录(在本例中)mysql并运行

    来确认

    show processlist