Я использую 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 из отдельных потоков.
Любая помощь в этом отношении будет принята с благодарностью. Спасибо!