Cómo ejecutar una acción asíncrona en Django.

Puedes usar Redis Queue para esto.

Tendrá que instalar redis. Recomiendo usar la imagen de la ventana acoplable de https://hub.docker.com/_/redis/.

$ docker run –nombre some-redis -d redis

Luego instale esta dependencia ui / django-rq. Configúralo según las instrucciones en docs (settings.py y urls.py). Con la decoración de su función ahora puede ejecutar tareas asíncronas.

del trabajo de importación django_rq

@trabajo
def long_running_func ():
pasar

long_running_func.delay () # Encoue la función en la cola “predeterminada”

Un enfoque diferente sería usar apio – Primeros pasos con Django. El apio es un poco más complejo y sofisticado cola de tareas y puede ser más difícil de implementar y mantener.

Por supuesto, depende del software que estés desarrollando. En mi humilde opinión, para la mayoría de las tareas simples, la cola redis es suficiente.