import logging from collections.abc import Callable, Awaitable logger = logging.getLogger(__name__) type CronHandler = Callable[..., Awaitable[dict]] _handler_registry: dict[str, CronHandler] = {} def register_handler(name: str, handler: CronHandler) -> None: if name in _handler_registry: logger.warning("CronHandler '%s' already registered, overwriting", name) _handler_registry[name] = handler def resolve_handler(name: str) -> CronHandler: return _handler_registry.get(name, _noop_handler) def list_registered() -> list[str]: return list(_handler_registry.keys()) async def _noop_handler(**kwargs) -> dict: return {"message": "noop handler, job needs reassignment after reload"}