Skip to content

Commit 9a6ebf1

Browse files
committed
dynamic-scheduler
1 parent c3e552a commit 9a6ebf1

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/application.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from fastapi import FastAPI
2+
from servicelib.fastapi.lifespan_utils import Lifespan
23
from servicelib.fastapi.monitoring import (
34
initialize_prometheus_instrumentation,
45
)
@@ -13,7 +14,10 @@
1314
from .settings import ApplicationSettings
1415

1516

16-
def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
17+
def create_app(
18+
settings: ApplicationSettings | None = None,
19+
logging_lifespan: Lifespan | None = None,
20+
) -> FastAPI:
1721
app_settings = settings or ApplicationSettings.create_from_envs()
1822

1923
app = FastAPI(
@@ -25,7 +29,9 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
2529
"/doc" if app_settings.DYNAMIC_SCHEDULER_SWAGGER_API_DOC_ENABLED else None
2630
),
2731
redoc_url=None,
28-
lifespan=events.create_app_lifespan(settings=app_settings),
32+
lifespan=events.create_app_lifespan(
33+
settings=app_settings, logging_lifespan=logging_lifespan
34+
),
2935
)
3036
override_fastapi_openapi_method(app)
3137

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/events.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
create_remote_docker_client_input_state,
77
remote_docker_client_lifespan,
88
)
9+
from servicelib.fastapi.lifespan_utils import Lifespan
910
from servicelib.fastapi.monitoring import (
1011
create_prometheus_instrumentationmain_input_state,
1112
prometheus_instrumentation_lifespan,
@@ -51,8 +52,12 @@ async def _settings_lifespan(app: FastAPI) -> AsyncIterator[State]:
5152
}
5253

5354

54-
def create_app_lifespan(settings: ApplicationSettings) -> LifespanManager:
55+
def create_app_lifespan(
56+
settings: ApplicationSettings, logging_lifespan: Lifespan | None
57+
) -> LifespanManager:
5558
app_lifespan = LifespanManager()
59+
if logging_lifespan:
60+
app_lifespan.add(logging_lifespan)
5661
app_lifespan.add(_settings_lifespan)
5762

5863
if settings.DYNAMIC_SCHEDULER_TRACING:

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/main.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
from common_library.json_serialization import json_dumps
77
from fastapi import FastAPI
8-
from servicelib.fastapi.logging_lifespan import setup_logging_shutdown_event
8+
from servicelib.fastapi.logging_lifespan import (
9+
setup_logging_lifespan,
10+
)
911
from simcore_service_dynamic_scheduler.core.application import create_app
1012
from simcore_service_dynamic_scheduler.core.settings import ApplicationSettings
1113

@@ -22,7 +24,7 @@
2224

2325
def app_factory() -> FastAPI:
2426
app_settings = ApplicationSettings.create_from_envs()
25-
logging_shutdown_event = setup_logging_shutdown_event(
27+
logging_lifespan = setup_logging_lifespan(
2628
log_format_local_dev_enabled=app_settings.DYNAMIC_SCHEDULER_LOG_FORMAT_LOCAL_DEV_ENABLED,
2729
logger_filter_mapping=app_settings.DYNAMIC_SCHEDULER_LOG_FILTER_MAPPING,
2830
tracing_settings=app_settings.DYNAMIC_SCHEDULER_TRACING,
@@ -34,6 +36,4 @@ def app_factory() -> FastAPI:
3436
"Application settings: %s",
3537
json_dumps(app_settings, indent=2, sort_keys=True),
3638
)
37-
app = create_app(settings=app_settings)
38-
app.add_event_handler("shutdown", logging_shutdown_event)
39-
return app
39+
return create_app(settings=app_settings, logging_lifespan=logging_lifespan)

0 commit comments

Comments
 (0)