Assim que você disser "faça isso em segundo plano", vou sugerir Aipo . Envolve executar o RabbitMQ como um daemon local que o Celery usa como armazenamento de dados intermediário e O Django pode pedir ao Celery para realizar tarefas .
Se você precisar rastrear o status, uma vez que você adicionar uma tarefa, você pode obter um UUID para ele e, em seguida, consultar o Celery para obter o status, e / ou apenas ter o Celery colocado o resultado no Django ORM padrão para você (ou use webhooks, ou seja o que for que os hipsters usem atualmente).
Isto é, claro, muito aprendizado e uma quantidade considerável de encargos contínuos por apenas executar algo em segundo plano. Você pode apenas fazer o caminho subprocess.Popen
sujo . Você não irá capturar qualquer saída ou obter qualquer status ... Mas deve ser apenas sobre o trabalho.