From af505e8d701f1d9cb8ea3ee5f32a7a54a10729c8 Mon Sep 17 00:00:00 2001 From: Andrii Yurchuk Date: Tue, 3 Sep 2024 22:29:00 +0200 Subject: [PATCH] Call mark_process_dead on worker pid if prometheus_client is installed (#212) --- django_q/cluster.py | 4 +++- django_q/conf.py | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/django_q/cluster.py b/django_q/cluster.py index 0a0da9a..2a57c5a 100644 --- a/django_q/cluster.py +++ b/django_q/cluster.py @@ -21,7 +21,7 @@ from django.utils.translation import gettext_lazy as _ # Local from django_q.brokers import Broker, get_broker -from django_q.conf import Conf, get_ppid, logger, psutil, setproctitle +from django_q.conf import Conf, get_ppid, logger, psutil, setproctitle, prometheus_multiprocess from django_q.humanhash import humanize from django_q.monitor import monitor from django_q.pusher import pusher @@ -223,6 +223,8 @@ class Sentinel: % {"name": process.name} ) else: + if prometheus_multiprocess: + prometheus_multiprocess.mark_process_dead(process.pid) self.pool.remove(process) self.spawn_worker() if process.timer.value == 0: diff --git a/django_q/conf.py b/django_q/conf.py index c326ca5..62bcf96 100644 --- a/django_q/conf.py +++ b/django_q/conf.py @@ -38,6 +38,11 @@ try: except ModuleNotFoundError: setproctitle = None +try: + from prometheus_client import multiprocess as prometheus_multiprocess +except ModuleNotFoundError: + prometheus_multiprocess = None + class Conf: """