diff --git a/awx/main/dispatch/worker/base.py b/awx/main/dispatch/worker/base.py index 40601adf62..f3d46e9e12 100644 --- a/awx/main/dispatch/worker/base.py +++ b/awx/main/dispatch/worker/base.py @@ -118,9 +118,14 @@ class AWXConsumerRedis(AWXConsumerBase): queue = redis.Redis.from_url(settings.BROKER_URL) while True: - res = queue.blpop(self.queues) - res = json.loads(res[1]) - self.process_task(res) + try: + res = queue.blpop(self.queues) + res = json.loads(res[1]) + self.process_task(res) + except redis.exceptions.RedisError: + logger.exception(f"encountered an error communicating with redis") + except (json.JSONDecodeError, KeyError): + logger.exception(f"failed to decode JSON message from redis") if self.should_stop: return