Некоторые функции должны запускаться асинхронно на веб-сервере. Отправка электронных писем или пост-обработка данных являются типичными случаями использования.
Каков наилучший (или самый питонический) способ написать функцию декоратора для асинхронного запуска функции?
Моя установка обычная: Python, Django, Gunicorn или Waitress, стандарт AWS EC2 Linux
Например, вот начало:
from threading import Thread
def postpone(function):
def decorator(*args, **kwargs):
t = Thread(target = function, args=args, kwargs=kwargs)
t.daemon = True
t.start()
return decorator
желаемое использование:
@postpone
def foo():
pass #do stuff