Вы можете использовать rq
или celery
в качестве рабочего экземпляра. rq
довольно простой и минимальный, где celery
полнофункциональный, но немного подавляющий. Вот как это будет работать.
def execute_background_task(param):
your task...
def request(param):
execute(param)
return "Your Request is getting processed"
Так что execute_background_task
будет выполняться rq или сельдереем в фоновом режиме , И с внешнего интерфейса вы отправляете запрос sever чем «Эй, rq / celery, вы закончили задачу sh?». Итак, как вы узнали, закончили ли они sh это или нет?
Решение: Вы получите идентификатор задания для каждой задачи, которая выполняется в фоновом режиме. Вы можете запросить это, если оно закончилось или нет.
Я думаю, вам следует проверить какую-нибудь замечательную документацию, чтобы поиграть с ней. Вот несколько интересных ссылок, по которым я следовал:
https://realpython.com/flask-by-example-implementing-a-redis-task-queue/
https://flask-rq2.readthedocs.io/en/latest/