From 1e6ca01686a5a85ee0c2b8c81c812256f3e166de Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Thu, 19 May 2022 15:00:49 -0400 Subject: [PATCH] Fix the callback receiver --status command --- awx/main/dispatch/worker/callback.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/awx/main/dispatch/worker/callback.py b/awx/main/dispatch/worker/callback.py index 8decb39c22..9df77a68c8 100644 --- a/awx/main/dispatch/worker/callback.py +++ b/awx/main/dispatch/worker/callback.py @@ -6,6 +6,7 @@ import time import traceback from django.conf import settings +from django.utils.functional import cached_property from django.utils.timezone import now as tz_now from django.db import DatabaseError, OperationalError, transaction, connection as django_connection from django.db.utils import InterfaceError, InternalError @@ -70,7 +71,6 @@ class CallbackBrokerWorker(BaseWorker): def __init__(self): self.buff = {} - self.pid = os.getpid() self.redis = redis.Redis.from_url(settings.BROKER_URL) self.subsystem_metrics = s_metrics.Metrics(auto_pipe_execute=False) self.queue_pop = 0 @@ -79,6 +79,11 @@ class CallbackBrokerWorker(BaseWorker): for key in self.redis.keys('awx_callback_receiver_statistics_*'): self.redis.delete(key) + @cached_property + def pid(self): + """This needs to be obtained after forking, or else it will give the parent process""" + return os.getpid() + def read(self, queue): try: res = self.redis.blpop(self.queue_name, timeout=1)