Я тестирую свое приложение (на Google App Engine живых серверах) и, как я его написал, в моем коде около 40 операторов db.GqlQuery () (в основном часть классов) .
Я продолжаю получать db.Timeout очень часто хотя.
Как мне справиться с этим? Я собирался окружить все мои запросы действительно брутальным кодом, подобным этому:
querySucceeded = False
while not querySucceeded :
try :
result = db.GqlQuery( """xxx""" ).get()
querySucceeded = True #only get here if above line doesn't raise exc
except :
querySucceeded = False
Это нормально? Ты согласен? Какой лучший способ борьбы с db.Timeouts?
Edit:
Теперь я использую это для любых запросов get
""" Query gets single result """
def queryGet( gql ) :
querySucceeded = False
while not querySucceeded :
try :
result = db.GqlQuery( gql ).get()
querySucceeded = True #only get here if above line doesn't raise
except :
querySucceeded = False
return result
У меня есть похожие функции для выборки и подсчета.