一.基本配置:
要验证配置文件是否正常工作且不包含任何语法错误,可以尝试导入它
python -m celeryconfig
 
#配置名不能变
BROKER_URL = 'redis://localhost:6379/1'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/2'
#导入任务,
CELERY_IMPORTS = (
'apps.task1',
'apps.task2'
)
- 如果不想这样,可以在实例化的时候传个列表:
- Celery('celery_app',include=['celery_app.task'])
官方文档:
二.其他的常用配置
CELERY_TIMEZONE                       时区的设置,默认UTC
CELERY_ENABLE_UTC                   false时,将使用系统本地时区
CELERY_TASK_ANNOTATIONS    设置可用于从配置重写任何任务属性
- task_annotations = {'task1.add': {'rate_limit': '10/s'}}
- task_annotations = {'*': {'rate_limit': '10/s'}}
- 
- 第一个参数是任务,第二个参数是任务的属性
- rate_limit就是任务属性,其他的任务属性还有:
 
CELERY_TASK_PUBLISH_RETRY     默认True。连接丢失或其他连接错误的情况下是否重试发布任务消息,
CELERY_RESULT_BACKEND        任务结果存储
- ='db+sqlite:///xxx.xxx'
- = 'db+mysql://scott:tiger@localhost/foo'
CELERYD_CONCURRENCY    并发的worker数量,根据cpu决定
CELERYD_PREFETCH_MULTIPLIER     默认4,每次去redis取任务的数量
CELERYD_MAX_TASKS_PER_CHILD           每个worker执行了多少次任务后就会死掉
CELERYD_TASK_TIME_LIMIT = 60                    单个任务的最大运行时间
CELERY_TASK_RESULT_EXPIRES = 1200           celery任务执行结果的超时时间
 
注意:
celery版本4.1.0有时区的bug,需要更换版本