Push celery queue stats to memcached periodically

We'll piggyback off the task that checks for inconsistent jobs between
celery and Tower itself. These are read off via /api/v1/ping
This commit is contained in:
Matthew Jones
2016-11-03 12:09:40 -04:00
parent 08b4364211
commit 8e77deea27
3 changed files with 8 additions and 6 deletions
+1 -3
View File
@@ -154,7 +154,7 @@ class TaskManager():
if not hasattr(settings, 'CELERY_UNIT_TEST'):
return None
return active_tasks
return (active_task_queues, active_tasks)
def start_task(self, task, dependent_tasks=[]):
from awx.main.tasks import handle_work_error, handle_work_success
@@ -326,8 +326,6 @@ class TaskManager():
def _schedule(self):
all_sorted_tasks = self.get_tasks()
if len(all_sorted_tasks) > 0:
#self.process_celery_tasks(active_tasks, all_sorted_tasks)
latest_project_updates = self.get_latest_project_update_tasks(all_sorted_tasks)
self.process_latest_project_updates(latest_project_updates)
+4 -2
View File
@@ -1,6 +1,7 @@
# Python
import logging
import json
# Django
from django.db import transaction
@@ -12,6 +13,7 @@ from celery import task
# AWX
from awx.main.models import Instance
from awx.main.scheduler import TaskManager
from django.core.cache import cache
logger = logging.getLogger('awx.main.scheduler')
@@ -38,8 +40,8 @@ def run_fail_inconsistent_running_jobs():
try:
Instance.objects.select_for_update(nowait=True).all()[0]
scheduler = TaskManager()
active_tasks = scheduler.get_active_tasks()
active_task_queues, active_tasks = scheduler.get_active_tasks()
cache.set("active_celery_tasks", json.dumps(active_task_queues))
if active_tasks is None:
# TODO: Failed to contact celery. We should surface this.
return None