try-to-fix-2

This commit is contained in:
Untone 2024-10-14 12:13:18 +03:00
parent 173c865a69
commit 4e7fb953ba

35
main.py
View File

@ -34,6 +34,22 @@ async def start():
print(f"[main] process started in {MODE} mode") print(f"[main] process started in {MODE} mode")
async def lifespan(app):
# Запуск всех сервисов при старте приложения
await asyncio.gather(
create_all_tables(),
redis.connect(),
precache_data(),
ViewedStorage.init(),
search_service.info(),
start(),
revalidation_manager.start(),
)
yield
# Остановка сервисов при завершении работы приложения
await redis.disconnect()
def create_all_tables(): def create_all_tables():
for model in [author.Author, author.AuthorRating, author.AuthorFollower, for model in [author.Author, author.AuthorRating, author.AuthorFollower,
notification.Notification, notification.NotificationSeen, notification.Notification, notification.NotificationSeen,
@ -47,11 +63,13 @@ def create_all_tables():
create_table_if_not_exists(engine, model) create_table_if_not_exists(engine, model)
# Создаем экземпляр GraphQL
graphql_app = GraphQL(schema, debug=True)
# Оборачиваем GraphQL-обработчик для лучшей обработки ошибок # Оборачиваем GraphQL-обработчик для лучшей обработки ошибок
async def graphql_handler(request): async def graphql_handler(request):
try: try:
graphql_app = GraphQL(schema, debug=True) return await graphql_app.handle_request(request)
return await graphql_app(request)
except asyncio.CancelledError: except asyncio.CancelledError:
return JSONResponse({"error": "Request cancelled"}, status_code=499) return JSONResponse({"error": "Request cancelled"}, status_code=499)
except Exception as e: except Exception as e:
@ -64,17 +82,8 @@ app = Starlette(
Route("/", graphql_handler), Route("/", graphql_handler),
Route("/new-author", WebhookEndpoint), Route("/new-author", WebhookEndpoint),
], ],
on_startup=[ lifespan=lifespan,
create_all_tables,
redis.connect,
precache_data,
ViewedStorage.init,
search_service.info,
# start_sentry,
start,
revalidation_manager.start,
],
on_shutdown=[redis.disconnect],
debug=True, debug=True,
) )
app.add_middleware(ExceptionHandlerMiddleware) app.add_middleware(ExceptionHandlerMiddleware)