我有一个查询,它碰到一个相当大的MySQL用户表,需要一段时间才能运行。它目前是rescue后台任务的一部分。我已经被要求让它潜在地攻击我们的MySQL从数据库,而不是生产数据库,因为它可以防止作业减慢可能在生产中注册的用户的速度。我想知道这是否有意义,如果是这样,我将如何切换数据库,我在一个特定的类查询?
到目前为止,我的猜测是,我将添加如下的东西到我的Resque作业类。我的另一个问题是,它是否只适用于特定的班级,或者它是否也会潜在地干扰其他工作,使它们指向错误的地方?class ResqueJob
@queue = :resque_job
def self.perform(id)
ActiveRecord::Base.establish_connection("slave_database")
users = User.all (for example)
end
end
我认为你应该使用八达通。在这里阅读我的小演示项目:章鱼复制示例