Bằng Cần tây mặc định gửi tất cả các nhiệm vụ để 'cần tây' hàng đợi, nhưng bạn có thể thay đổi hành vi này bằng cách bổ sung thêm tham số:Làm thế nào để gửi nhiệm vụ tuần hoàn vào hàng đợi cụ thể trong cần tây
@task(queue='celery_periodic')
def recalc_last_hour():
log.debug('sending new task')
recalc_hour.delay(datetime(2013, 1, 1, 2)) # for example
thiết lập Scheduler:
CELERYBEAT_SCHEDULE = {
'installer_recalc_hour': {
'task': 'stats.installer.tasks.recalc_last_hour',
'schedule': 15 # every 15 sec for test
},
}
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
Run nhân:
python manage.py celery worker -c 1 -Q celery_periodic -B -E
chương trình này không hoạt động như mong đợi: công nhân này gửi nhiệm vụ tuần hoàn t o 'cần tây' hàng đợi, không phải 'celery_periodic'. Lam sao tôi co thể sửa no?
P.S. celery == 3.0.16
này có thể hữu ích? http://docs.celeryproject.org/en/latest/userguide/routing.html – oleg
Tôi đã tắt tùy chọn CELERYBEAT_SCHEDULER (được sử dụng dựa trên stoprage) và nó hoạt động chính xác. –