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