moonz
@moonz
web developer | seo | design

Flask как отдать ответ до конца обработки?

Всем привет, скажу сразу что с Flask раньше не работал, но задача слишком простая что бы делать её на чём-то сложном, в целом его достаточно.

Итак суть ситуации такова: есть удалённый сервер (crm система), при сценарии она отправляет POST запрос на мой сервер, который должен обработать свою логику, но отвечать не обязан. Однако сама CRM считает что ответ быть должен, и шлёт несколько пакетов пока сервер ей не ответит хоть что-нибудь. Это приводит к накоплению одинаковых данных в буфере, и собственно ломает логику всего скрипта.

Подскажите пожалуйста, возможно ли как-то реализовать быстрый ответ но при этом продолжить выполнение кода. Я читал что flask не умеет в асинхронный код, по этому и решил написать сюда.

Заранее благодарю.
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
moonz
@moonz Автор вопроса
web developer | seo | design
Решение нашел сам (просто не правильно формулировал вопрос)

import time
from threading import Thread
from flask import request, Flask
app = Flask(__name__)


class Compute(Thread):
    def __init__(self, request):
        Thread.__init__(self)
        self.request = request

    def run(self):
        print("start")
        time.sleep(5)
        print(self.request)
        print("done")


@app.route('/myfunc', methods=["GET", "POST"])
def myfunc():
        thread_a = Compute(request.__copy__())
        thread_a.start()
        return "Processing in background", 200
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы