From 2cb808ec3c3c5fe57cc8b672ea3cccdd20131989 Mon Sep 17 00:00:00 2001 From: Kurbanov Bulat Date: Thu, 18 Nov 2021 23:58:32 +0300 Subject: [PATCH] Optimize --- fastapi_book_server/app/services/common.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fastapi_book_server/app/services/common.py b/fastapi_book_server/app/services/common.py index 955ea51..e9955c6 100644 --- a/fastapi_book_server/app/services/common.py +++ b/fastapi_book_server/app/services/common.py @@ -1,5 +1,6 @@ from typing import Optional, Generic, TypeVar, Union, cast from itertools import permutations +import asyncio from fastapi_pagination.api import resolve_params from fastapi_pagination.bases import AbstractParams, RawParams @@ -127,11 +128,16 @@ class TRGMSearchService(Generic[T]): async def get(cls, query: str) -> Page[T]: params = cls.get_params() - authors = await cls.get_objects(query) - total = await cls.get_objects_count(query) + objects_task = asyncio.create_task(cls.get_objects(query)) + total_task = asyncio.create_task(cls.get_objects_count(query)) + + await asyncio.wait({objects_task, total_task}) + + objects = objects_task.result() + total = total_task.result() return CustomPage.create( - items=authors, + items=objects, total=total, params=params )