authentik.root.signals

 1from datetime import timedelta
 2
 3from django.dispatch import Signal, receiver
 4from django.utils.timezone import now
 5from structlog.stdlib import get_logger
 6
 7# Signal dispatched before actual startup trigger
 8pre_startup = Signal()
 9# Signal dispatched which should trigger all startup logic
10startup = Signal()
11# Signal dispatched after the startup logic
12post_startup = Signal()
13
14LOGGER = get_logger()
15
16
17@receiver(pre_startup)
18def pre_startup_log(sender, **_):
19    sender._start_time = now()
20
21
22@receiver(post_startup)
23def post_startup_log(sender, **_):
24    took: timedelta = now() - sender._start_time
25    LOGGER.info("authentik Core Worker finished starting", took_s=took.total_seconds())
pre_startup = <django.dispatch.dispatcher.Signal object>
startup = <django.dispatch.dispatcher.Signal object>
post_startup = <django.dispatch.dispatcher.Signal object>
LOGGER = <BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_class=None, initial_values={}, logger_factory_args=())>
@receiver(pre_startup)
def pre_startup_log(sender, **_):
18@receiver(pre_startup)
19def pre_startup_log(sender, **_):
20    sender._start_time = now()
@receiver(post_startup)
def post_startup_log(sender, **_):
23@receiver(post_startup)
24def post_startup_log(sender, **_):
25    took: timedelta = now() - sender._start_time
26    LOGGER.info("authentik Core Worker finished starting", took_s=took.total_seconds())