0
我们有一个Rails应用程序,它使用master_slave_adapter插件在MySQL主从设置中运行一段时间。最近,需要对长时间运行的任务进行后台处理。所以我们结算了DelayedJob。DelayedJob和`master_slave_adapter`;失去主连接
DelayedJob的表/模型使用相同的主从适配器。它通过轮询表保持从属连接的活动。但主连接保持空闲很长一段时间,关过夜,下一次有人激活工作出现这种情况:
Mysql::Error: MySQL server has gone away: UPDATE `delayed_jobs` SET locked_by = null, locked_at = null WHERE (locked_by = 'delayed_job host:[snip] pid:20481')
我听说过使用reconnect
选项在我database.yml
坏事,因为它据称不会在重新连接后设置连接字符集,就像在第一次连接初始化时一样。
什么是使这项工作的正确方法?