Я возвращаю результат от flask API. я получаю данные из эластичного шва c. данные слишком велики. для получения 200 000 данных требуется 21 сек c. с увеличением данных ответ становится медленнее
есть ли способ получить ответ быстрее или асинхронно?
class job_results(Resource):
def get(self):
id = request.args.get('id')
res = job_results_query( id)
return (res)
def job_results_query(id):
response = {"result":{}}
response_query = '{\
"size":1000,\
"sort":[{"timestamp":{"order":"asc"}}],\
"query": {\
"query_string": {\
"query": "identifier:' + id + ' AND type:response"\
}\
}\
}'
query_result = es.search(index="ab", scroll="1m", body=response_query)
scrollID = query_result['_scroll_id']
scroll_size = query_result['hits']['total']
while scroll_size > 0:
response_query_time = time.time()
for line in query_result['hits']['hits']:
source = line['_source']
a = source['a']
metrics_data = source['metrics_data']
response['result'].setdefault('a', {})
response['result']['a'].setdefault("data",[])
response['result']['a']['data'].append(metrics_data)
query_result = es.scroll(scroll_id=scrollID, scroll="1m")
scrollID = query_result['_scroll_id']
scroll_size = len(query_result['hits']['hits'])
return response