try-to-fix-2
This commit is contained in:
parent
173c865a69
commit
4e7fb953ba
35
main.py
35
main.py
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user