def execute_sql(self, sql, params=None, require_commit=True):
@retry(wait_exponential_multiplier=500,
wait_exponential_max=10000,
stop_max_attempt_number=10,
retry_on_exception=self.retry_if_peewee_error)
def execute():
try:
cursor = super(RetryHarderOperationalError, self) \
.execute_sql(sql, params, require_commit)
except (peewee.OperationalError, peewee.InterfaceError), error:
print LOG.debug("Retrying after Peewee error: %s", error.message)
if not self.is_closed():
self.close()
with self.exception_wrapper():
cursor = self.get_cursor()
cursor.execute(sql, params or ())
if require_commit and self.get_autocommit():
self.commit()
return cursor
return execute()
评论列表
文章目录