Создание Chunk Generator из потока запросов - Python Flask - PullRequest
1 голос
/ 07 апреля 2019

Я использую Python и Flask с Flask-restful на моем сервере. Я хочу обработать потоковую передачу данных на мой сервер. Я настроил конечную точку следующим образом:

class ChunkProcessor(Resource):
    j = 0
    def chunk_fun(self):
        chunk_size = int(request.headers.get("x-chunk-size"))
        chunk = request.stream.read(chunk_size)
        self.j = 0
        while chunk:
            print("got chunk")
            yield chunk
            self.j += 1
            chunk = request.stream.read(chunk_size)
    def post(self):
        for i in self.chunk_fun():
            pass
        return {"success": "TRUE", "n_chunks": self.j}

В этой форме все работает нормально.

Но теперь я хочу отправить эти куски по нескольким направлениям. т.е. следующим образом:

class ChunkProcessor(Resource):
    def chunk_fun(self):
        chunk_size = int(request.headers.get("x-chunk-size"))
        chunk = request.stream.read(chunk_size)
        while chunk:
            yield chunk
            chunk = request.stream.read(chunk_size)
    def post(self):
        res1 = MyAPI1().call(self.chunk_fun)
        res2 = MyAPI2().call(self.chunk_fun)
        return {"success": "TRUE", "output": [res1, res2]}

В текущей форме поток запросов исчерпывается при первом вызове.

В идеале я хотел бы передать chunk generator каждому из моих интерфейсов API.

Цель состоит в том, чтобы создать функцию генератора чанка из потока запросов во Flask. Кроме того, я планирую запускать вызовы API из отдельных потоков.

Любая помощь в этом отношении будет принята с благодарностью. Спасибо!

...