So senden Sie periodische Aufgaben an bestimmte Warteschlangen in Sellery

Standardmäßig Sellerie senden alle Aufgaben, 'Sellerie' Warteschlange, aber Sie können dieses Verhalten ändern, durch hinzufügen von zusätzliche parameter:

@task(queue='celery_periodic')
def recalc_last_hour():
    log.debug('sending new task')
    recalc_hour.delay(datetime(2013, 1, 1, 2)) # for example

Scheduler-Einstellungen:

CELERYBEAT_SCHEDULE = {
   'installer_recalc_hour': {
        'task': 'stats.installer.tasks.recalc_last_hour',
        'schedule': 15  # every 15 sec for test
    },
}
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"

Laufen Arbeiter:

python manage.py celery worker -c 1 -Q celery_periodic -B -E

Diese Regelung funktioniert nicht wie erwartet: diese Arbeiter sendet periodische Aufgaben 'Sellerie' queue, nicht 'celery_periodic'. Wie kann ich das beheben?

P. S. Sellerie==3.0.16

InformationsquelleAutor der Frage Artem Mezhenin | 2013-06-06

Schreibe einen Kommentar