Если выполняется так долго, я бы сделал следующим образом:
Создал бы приложение
celery с задачей, сделал бы ручку апи, которая запускает задачу и отдает ссылку на результат, ссылка на результат отдает либо "еще выполняется", либо результат.
Либо, вместо ссылки на результат, можно отправлять его на email.
Я бы написал docker-compose.yml с контейнерами api, nginx, celery, redis, но можно развернуть все любым удобным способом, это не обязательно.