mysql - 在 Rake 任务中关闭 MySQL 连接

标签 mysql ruby-on-rails-3

我有一个类似于 Resque is returning Mysql2::Error: closed MySQL connection: SHOW FIELDS FROM `users` 中描述的问题.

就我而言,我在长时间运行的 Rake 任务(3 小时以上)中看到了它。基本上任务是从 csvs 导入数据,然后突然开始吐出“关闭的 MySQL 连接”错误。这只发生在我们使用远程 MySql 的暂存环境中,无法在本地重现。

所以我的问题是,为什么 Rails 应用程序(使用相同的连接属性)可以毫无问题地运行数天,但我的数据导入任务在几个小时后就崩溃了?

最佳答案

您的连接超时。在使用 mysql 驱动程序的长时间运行的 rake 任务中,这种情况一直发生。尝试在 database.yml 中设置重新连接标志

http://guides.rubyonrails.org/2_3_release_notes.html#reconnecting-mysql-connections

基本上只需添加:

reconnect: true

令我惊讶的是,由于我一直遇到它,因此没有对此进行更多记录。如果这不起作用,请尝试显式调用

ActiveRecord::ConnectionAdapters::ConnectionHandler#verify_active_connections!

关于mysql - 在 Rake 任务中关闭 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11214518/

相关文章:

javascript - 如何使用 $.ajax{} 使用 ajax 更新 html

ruby-on-rails - 如何验证字符串的第一个字符不是整数?

ruby-on-rails-3 - 设计 - 如果帐户未确认则重定向到页面

php - echo 语句与 php 数组

mysql - 选择最小总值相同的随机列

php - Laravel 和存储的 MySQL 过程的结果

mysql - Rails 3 - delete_all 不支持限制范围,而 MySQL 支持它

php - 根据选择选项值在我的 sql 表中保存信息

php - 如何减去多个查询的值

ruby - 设置 :linked_files and set :linked_files for uploads in capistrano3