1
我有一個django應用程序,它有一個前端輸入數據和一個API來提供數據。有一個主/從設置,所以我使用數據庫路由器來管理寫入主機和從機讀取。Django,智能地在主從之間路由
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')
強制讀取前端主從
任何想法如何解決這個問題?
你能緩存數據的memcached或將其保存到用戶的會話? – Enrico
這是一個解決方法,但我想有一個更穩固的解決方案。 –
如果你想從奴隸讀取,你將不得不等待數據傳播到它,並會有一個延遲 - 無論是在你的應用程序,數據庫或客戶端。 – Enrico