diff --git a/src/pretix/base/views/health.py b/src/pretix/base/views/health.py index c6cf152157..c3b7f5d0d8 100644 --- a/src/pretix/base/views/health.py +++ b/src/pretix/base/views/health.py @@ -1,3 +1,5 @@ +from django.conf import settings +from django.core import cache from django.http import HttpResponse from ..models import User @@ -6,4 +8,18 @@ from ..models import User def healthcheck(request): # Perform a simple DB query to see that DB access works User.objects.exists() + + # Test if redis access works + if settings.HAS_REDIS: + import django_redis + + redis = django_redis.get_redis_connection("redis") + redis.set("_healthcheck", 1) + if not redis.exists("_healthcheck"): + return HttpResponse("Redis not available.", status=503) + + cache.cache.set("_healthcheck", "1") + if not cache.cache.get("_healthcheck") == "1": + return HttpResponse("Cache not available.", status=503) + return HttpResponse()