Search code examples
pythondjangoconfigurationcelerydjango-celery

Celery monitoring not working with database broker


I'm using django-celery using the database as both broker and results store. The events are getting processed, but the monitoring (celerycam or celeryev) is not working.

My settings.py includes

import djcelery
djcelery.setup_loader()
BROKER_BACKEND = "django"
CELERY_IMPORTS = (
        "cbridge.tasks",
        )

INSTALLED_APPS += [
    'djcelery',
    'djkombu',
    ]

This is enough to get manage.py celeryd to process tasks from cbridge.tasks that get inserted into the queue from anywhere and sometimes get the results back to the thread which started the task. (I'll leave that sometimes alone for now.) So the system is set up enough to get the tasks to actually run, which is great and all, but...

My question is how to get I get any monitoring of the tasks? Nothing ever shows up in the djcelery_ tables.

I run manage.py celerycam or manage.py celeryev and they start up just fine but never do anything. I'm guessing there are yet more configuration variables I need to set. But what are they? I've tried setting

CELERY_RESULT_BACKEND = "database" 
CELERY_RESULT_DBURI = "mysql://root:@localhost/cbridge"

But they don't make any difference. I would expect celeryev and celerycam to read the same config settings as celeryd. Why wouldn't they?


Solution

  • I think your answer might be here... Django Celery: Admin interface showing zero tasks/workers

    "The event snapshots doesn't currently work with the Django ORM transport."