Django,智能地在主站和从站之间路由

时间:2012-11-27 20:32:57

标签: database django router

我有一个django应用程序,它有一个输入数据的前端,以及一个用于提供数据的API。有一个主/从设置,所以我使用数据库路由器来管理写入主设备和从从设备读取。

import random
from django.conf import settings

class DBMasterSlaveRouter(object):
    def db_for_read(self, model, **hints):
        if len(settings.DB_SLAVES) >= 1:
            return random.choice(settings.DB_SLAVES)
        else:
            return settings.DB_MASTER

    def db_for_write(self, model, **hints):
        return settings.DB_MASTER

    def allow_syncdb(self, db, model):
        return True

我遇到的问题是在前端,用户输入数据和点击保存,页面重新加载并从从站加载数据(这很快发生),因为主站和从站之间存在延迟,负载将没有反映最新的输入。我不想延迟页面加载。现在我必须添加using('default')以强制从前端的master读取

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)