1111 ContainerTaskParameters ,
1212 LogFileUploadURL ,
1313)
14- from distributed .worker import logger
15- from servicelib .logging_utils import config_all_loggers
14+ from distributed .worker import logger as dask_worker_logger
15+ from servicelib .logging_utils import config_all_loggers , log_context
1616from settings_library .s3 import S3Settings
1717
1818from ._meta import print_dask_sidecar_banner
1919from .computational_sidecar .core import ComputationalSidecar
2020from .dask_utils import TaskPublisher , get_current_task_resources , monitor_task_abortion
21+ from .rabbitmq import on_shutdown as shutdown_rabbitmq
22+ from .rabbitmq import on_startup as setup_rabbitmq
2123from .settings import ApplicationSettings
2224
2325_logger = logging .getLogger (__name__ )
@@ -40,7 +42,7 @@ def __init__(self, worker: distributed.Worker):
4042
4143 def exit_gracefully (self , * _args ):
4244 tasks = asyncio .all_tasks ()
43- logger .warning (
45+ dask_worker_logger .warning (
4446 "Application shutdown detected!\n %s" ,
4547 pformat ([t .get_name () for t in tasks ]),
4648 )
@@ -55,9 +57,9 @@ async def dask_setup(worker: distributed.Worker) -> None:
5557 """This is a special function recognized by the dask worker when starting with flag --preload"""
5658 settings = ApplicationSettings .create_from_envs ()
5759 # set up logging
58- logging .basicConfig (level = settings .LOG_LEVEL .value )
59- logging .root .setLevel (level = settings .LOG_LEVEL .value )
60- logger .setLevel (level = settings .LOG_LEVEL .value )
60+ logging .basicConfig (level = settings .DASK_SIDECAR_LOGLEVEL .value )
61+ logging .root .setLevel (level = settings .DASK_SIDECAR_LOGLEVEL .value )
62+ dask_worker_logger .setLevel (level = settings .DASK_SIDECAR_LOGLEVEL .value )
6163 # NOTE: Dask attaches a StreamHandler to the logger in distributed
6264 # removing them solves dual propagation of logs
6365 for handler in logging .getLogger ("distributed" ).handlers :
@@ -68,21 +70,25 @@ async def dask_setup(worker: distributed.Worker) -> None:
6870 tracing_settings = None , # no tracing for dask sidecar
6971 )
7072
71- logger . info ( "Setting up worker..." )
72- logger .info ("Settings : %s" , pformat ( settings .model_dump () ))
73+ with log_context ( dask_worker_logger , logging . INFO , "Launch dask worker" ):
74+ dask_worker_logger .info ("app settings : %s" , settings .model_dump_json ( indent = 1 ))
7375
74- print_dask_sidecar_banner ()
76+ print_dask_sidecar_banner ()
7577
76- if threading .current_thread () is threading .main_thread ():
77- loop = asyncio .get_event_loop ()
78- logger .info ("We do have a running loop in the main thread: %s" , f"{ loop = } " )
78+ if threading .current_thread () is threading .main_thread ():
79+ GracefulKiller (worker )
7980
80- if threading .current_thread () is threading .main_thread ():
81- GracefulKiller (worker )
81+ loop = asyncio .get_event_loop ()
82+ dask_worker_logger .info (
83+ "We do have a running loop in the main thread: %s" , f"{ loop = } "
84+ )
85+ if settings .DASK_SIDECAR_RABBITMQ :
86+ await setup_rabbitmq (worker , settings .DASK_SIDECAR_RABBITMQ )
8287
8388
84- async def dask_teardown (_worker : distributed .Worker ) -> None :
85- logger .warning ("Tearing down worker!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" )
89+ async def dask_teardown (worker : distributed .Worker ) -> None :
90+ with log_context (dask_worker_logger , logging .INFO , "tear down dask worker" ):
91+ await shutdown_rabbitmq (worker )
8692
8793
8894async def _run_computational_sidecar_async (
0 commit comments