1
0
Fork 0

Show queues and runtime instead of start time

This commit is contained in:
Mouse Reeve 2022-09-15 10:42:27 -07:00
parent 3739bdbf81
commit d76eae358f
3 changed files with 92 additions and 16 deletions

View file

@ -3,9 +3,17 @@ from django.contrib.auth.decorators import login_required, permission_required
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
from django.views import View
import redis
from celerywyrm import settings
from bookwyrm.tasks import app as celery
r = redis.Redis(
host=settings.REDIS_BROKER_HOST,
port=settings.REDIS_BROKER_PORT,
password=settings.REDIS_BROKER_PASSWORD,
db=settings.REDIS_BROKER_DB_INDEX,
)
# pylint: disable= no-self-use
@method_decorator(login_required, name="dispatch")
@ -18,6 +26,31 @@ class CeleryStatus(View):
def get(self, request):
"""See workers and active tasks"""
inspect = celery.control.inspect()
data = {"stats": inspect.stats(), "active_tasks": inspect.active()}
errors = []
try:
inspect = celery.control.inspect()
stats = inspect.stats()
active_tasks = inspect.active()
# pylint: disable=broad-except
except Exception as err:
stats = active_tasks = None
errors.append(err)
try:
queues = {
"low_priority": r.llen("low_priority"),
"medium_priority": r.llen("medium_priority"),
"high_priority": r.llen("high_priority"),
}
# pylint: disable=broad-except
except Exception as err:
queues = None
errors.append(err)
data = {
"stats": stats,
"active_tasks": active_tasks,
"queues": queues,
"errors": errors,
}
return TemplateResponse(request, "settings/celery.html", data)