简体   繁体   English

Django:CeleryBeat 与服务器上的主管不安排定期任务

[英]Django: CeleryBeat with Supervisor on server doesn't schedule periodic task

I have fully working Django 1.8.5 + Celery 3.1.18 on localhost with periodic task settings.我在本地主机上完全运行 Django 1.8.5 + Celery 3.1.18,并具有周期性任务设置。 But on server (Ubuntu 14.04) i need additional file celerybeat.conf (first is celery.conf) to make periodic tasks working on server.但是在服务器(Ubuntu 14.04)上,我需要额外的文件 celerybeat.conf(第一个是 celery.conf)来使定期任务在服务器上工作。 If i launch manually celery on server simple tasks are working (UPD: also periodic tasks works too with -B option):如果我在服务器上手动启动 celery,简单的任务正在运行(UPD:周期性任务也可以使用 -B 选项):

celery worker -A engine -B -l debug

but if run with Supervisor it starts, detect periodic task (in settings.py django) but do nothing.但是如果与 Supervisor 一起运行,它会启动,检测周期性任务(在 settings.py django 中)但什么都不做。 No errors in logs (only warnings), no task scheduling日志中没有错误(只有警告),没有任务调度

sudo supervisorctl reread
sudo supervisorctl restart celery

How to fix?怎么修?

here is settings.py这是settings.py

# Celery settings

BROKER_URL = 'django://'

from kombu.serialization import registry
registry.enable('pickle')
import djcelery
djcelery.setup_loader()

CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_RESULT_EXPIRES=3600
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
CELERY_RESULT_SERIALIZER = 'json' #json pickle msgpack
CELERY_TASK_SERIALIZER = 'json'
CELERY_IMPORTS=["wall.tasks"]
CELERY_TIMEZONE = 'Africa/Nairobi'
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
CELERYBEAT_SCHEDULE_FILENAME = '/var/lib/celery/beat.db'

SECRET_KEY = 'nbx.........#)i0onegi)as%d80hpcxp98%d9sphh^aqgt'
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
    'get_all_data': {
        'task': 'tasks.get_all_data',
        'schedule': crontab(minute="*/4"),
        #'args': (16, 16),
    },
}

Can you post your celerybeat.conf and supervisord.conf here?你能在这里发布你的 celerybeat.conf 和 supervisord.conf 吗? I have found a very good tutorial at http://www.lexev.org/en/2014/django-celery-setup/我在http://www.lexev.org/en/2014/django-celery-setup/找到了一个非常好的教程

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM