Skip to content

Instantly share code, notes, and snippets.

@clarksun
Last active September 19, 2017 11:59
Show Gist options
  • Save clarksun/426b4bf7fd21941d51c5c89cb887f780 to your computer and use it in GitHub Desktop.
Save clarksun/426b4bf7fd21941d51c5c89cb887f780 to your computer and use it in GitHub Desktop.
重试回滚注解 #decorator
# frontera/contrib/backends/sqlalchemy/revisiting.py
def retry_and_rollback(func):
def func_wrapper(self, *args, **kwargs):
tries = 5
while True:
try:
return func(self, *args, **kwargs)
except Exception as exc:
self.logger.exception(exc)
self.session.rollback()
sleep(5)
tries -= 1
if tries > 0:
self.logger.info("Tries left %i" % tries)
continue
else:
raise exc
return func_wrapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment