Domyślnie Seler wysłać wszystkie zadania „seler” kolejce, ale można to zmienić dodając dodatkowy parametr:Jak wysłać okresowe zadania do konkretnej kolejki w Seler
@task(queue='celery_periodic')
def recalc_last_hour():
log.debug('sending new task')
recalc_hour.delay(datetime(2013, 1, 1, 2)) # for example
ustawień harmonogramu:
CELERYBEAT_SCHEDULE = {
'installer_recalc_hour': {
'task': 'stats.installer.tasks.recalc_last_hour',
'schedule': 15 # every 15 sec for test
},
}
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
pracownik
Run:
python manage.py celery worker -c 1 -Q celery_periodic -B -E
Ten schemat nie działa zgodnie z oczekiwaniami: tym pracownikom okresowe wysyła zadania t o kolejka "selera", a nie "selekcja selera". Jak mogę to naprawić?
P.S. seler == 3.0.16
może to być pomocne? http://docs.celeryproject.org/en/latest/userguide/routing.html – oleg
Wyłączyłem opcję CELERYBEAT_SCHEDULER (wykorzystany stoper na podstawie pliku) i działa ona poprawnie. –