# 注意,celery4版本后,CELERY_BROKER_URL改为BROKER_URL

BROKER_URL = 'amqp://username:passwd@host:port/虚拟主机名'

# 指定结果的接受地址

CELERY_RESULT_BACKEND = 'redis://username:passwd@host:port/db'

# 指定任务序列化方式

CELERY_TASK_SERIALIZER = 'msgpack'

# 指定结果序列化方式

CELERY_RESULT_SERIALIZER = 'msgpack'

# 任务过期时间,celery任务执行结果的超时时间

CELERY_TASK_RESULT_EXPIRES = 60 * 20

# 指定任务接受的序列化类型.

CELERY_ACCEPT_CONTENT = ["msgpack"]

# 任务发送完成是否需要确认,这一项对性能有一点影响

CELERY_ACKS_LATE = True

# 压缩方案选择,可以是zlib, bzip2,默认是发送没有压缩的数据

CELERY_MESSAGE_COMPRESSION = 'zlib'

# 规定完成任务的时间

CELERYD_TASK_TIME_LIMIT = 5 # 在5s内完成任务,否则执行该任务的worker将被杀死,任务移交给父进程

# celery worker的并发数,默认是服务器的内核数目,也是命令行-c参数指定的数目

CELERYD_CONCURRENCY = 4

# celery worker 每次去rabbitmq预取任务的数量

CELERYD_PREFETCH_MULTIPLIER = 4

# 每个worker执行了多少任务就会死掉,默认是无限的

CELERYD_MAX_TASKS_PER_CHILD = 40

# 设置默认的队列名称,如果一个消息不符合其他的队列就会放在默认队列里面,如果什么都不设置的话,数据都会发送到默认的队列中

CELERY_DEFAULT_QUEUE = "default"