Код: Выделить всё
src/
ham.py
eggs.py
endpoint.py
Код: Выделить всё
ham.pyКод: Выделить всё
#ham.py script
from functools import wraps
import time
def ham1(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.monotonic()
i = func(*args, **kwargs)
time.sleep(2)
print(f'Execution time | ham1 -- {(time.monotonic() - start_time)} secs')
return True
return wrapper
Код: Выделить всё
#eggs.py script
from functools import wraps
import time
def egg1(func):
@wraps(func)
def wrapper(*args, **kwargs):
i = func(*args, **kwargs)
start_time = time.monotonic()
time.sleep(20)
print(f'Execution time | egg1 -- {(time.monotonic() - start_time)} secs')
return True
return wrapper
def egg2(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.monotonic()
i = func(*args, **kwargs)
time.sleep(1)
return True
print(f'Execution time | egg2 -- {(time.monotonic() - start_time)} secs')
return wrapper
def egg3(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.monotonic()
i = func(*args, **kwargs)
time.sleep(1)
print(f'Execution time | egg3 -- {(time.monotonic() - start_time)} secs')
return True
return wrapper
Код: Выделить всё
#endpoint.py script
from ham import ham1
from eggs import egg1, egg2, egg3
@egg3
@egg2
@egg1
@ham1
def foo():
return True
Код: Выделить всё
Execution time | ham1 -- 2 secs
Execution time | egg1 -- 20 secs
Execution time | egg2 -- 21 secs
Execution time | egg3 -- 22 secs
Я тоже пробовал time.perf_counter(), но все равно проблема. Я не понимаю, почему приложение ведет себя таким образом. Происходит ли какая-то асинхронная работа в фоновом режиме в flask?
Подробнее здесь: https://stackoverflow.com/questions/786 ... s-in-flask