Итак, у меня есть функция для выполнения запросаasticsearch с пакетомasticsearch-dsl, функция запускается в потоке.
def search_parallel(self, query, extra_func=None):
slices = 5
res = []
def get_data(slice_no):
s = Search(using=self.es, index=self.index['index'])
s = s.update_from_dict(query)
s = s.extra(slice={"id": slice_no, "max": slices})
for d in s.scan():
data = d.to_dict()
res.append(data)
try:
thread_list = []
for i in range(slices):
t = threading.Thread(target=get_data, args=(i,))
thread_list.append(t)
t.start()
for t in thread_list:
t.join()
Logger.info("FINISHED SLICE SEARCH")
return res
except Exception as e:
raise e
У меня есть несколько избыточных запросов, которые показывают одинаковый результат в моей программе, есть ли возможность кэшировать результат, потому что я не могу найти его в документации, или лучший способ кэшировать тот же результат