setting.py
CELERY_IMPORTS = ('celery_tasks.ansible_setup',)
BROKER_URL = 'redis://127.0.0.1:6379/4'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/4'
CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 * 30
CELERY_MAX_TASKS_PER_CHILD = 100 # 每个worker最多执行100个任务就会被销毁,可防止内存泄露
CELERY_TASK_TIME_LIMIT = 60 * 10 # 单个任务的运行时间不超过此值,否则会被SIGKILL 信号杀死
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' # 定时任务调度器
djcelery.setup_loader()
from datetime import timedelta
# 定时任务
CELERYBEAT_SCHEDULE = {
'add-every-3-seconds': {
'task': 'celery_tasks.ansible_setup.test_work',
# 'schedule': crontab(minute=u'40', hour=u'17',),
'schedule': timedelta(seconds=3),
'args': (10, 20)
},
}