Многопоточность для Python Django

Некоторые функции должны запускаться асинхронно на веб-сервере. Отправка электронных писем или пост-обработка данных являются типичными случаями использования.

Каков наилучший (или наиболее питонический) способ написать функцию декоратора для асинхронного запуска функции?

Моя установка обычная: 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

Ответы на вопрос(4)

Ваш ответ на вопрос