33 lines
676 B
Python
33 lines
676 B
Python
import time
|
|
import logging
|
|
from functools import wraps
|
|
from functools import update_wrapper
|
|
|
|
from .context import g
|
|
|
|
|
|
app_logger = logging.getLogger('app')
|
|
|
|
|
|
def safe_network(func):
|
|
@wraps(func)
|
|
def wrapper(*args, **kwargs):
|
|
while True:
|
|
try:
|
|
return func(*args, **kwargs)
|
|
except Exception as exc:
|
|
app_logger.error(exc)
|
|
time.sleep(1)
|
|
|
|
return wrapper
|
|
|
|
|
|
def copy_threading_context(func):
|
|
main_thridng_g_ctx = g.get_context()
|
|
|
|
def wrapper(*args, **kwargs):
|
|
g.update_context(main_thridng_g_ctx)
|
|
return func(*args, **kwargs)
|
|
|
|
return update_wrapper(wrapper, func)
|