@alegkonin

Как отравить ответ на POST запрос до завершения скрипта?

Коллеги, прошу помочь в данном вопросе.
Если телеграм бот, который отправляет на сервер пост запрос и получает ответ.
Ответы бывает разные по продолжительности работы скрипта и когда сервер не отвечает более 60секунд, телеграм отправляет повторный запрос.
Как отправлять ответ типа "200" до завершения скрипта?

from app import app
from flask import request, render_template
from .models import Users
from .classes import Base
from .controller import *
from flask_bootstrap import Bootstrap


@app.route("/", methods=["GET", "POST"])
def receive_update():
    if request.method == "POST":
       <...>
       return "ok"
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@iddqda
network engineer, netdevops
я для такого rq worker + redis использовал

т.е. отправляешь нужные задачи в очередь redis
rq worker видит задачу и начинает ее выполнять

на фронт вместе с 200 отдаешь список id задач и время от времени полишь их статус

тут неплохо расписано https://blog.miguelgrinberg.com/post/the-flask-meg...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
Протокол HTTP это запрос-ответ (кроме ws и sse), т.е. ответ подразумевает окончание обработки запроса. Обычно для долгих задач используют фоновое выполнение, самый известный пример celery, но для многих задач он оверхед и есть более простые решения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы