# 任务执行完成返回 True , 否则为 False
# 那么问题来了 , 它和 successful() 有什么区别呢?
# successful() 是在任务执行成功之后返回 True, 否则返回 False
# 而 ready() 只要是任务没有处于阻塞状态就会返回 True
# 比如执行成功、执行失败、被 worker 拒收都看做是已经 ready 了
print(res.ready())
"""
False
"""
# 2. wait():和之前的 get 一样, 因为在源码中写了: wait = get
# 所以调用哪个都可以, 不过 wait 可能会被移除 , 建议直接用 get 就行
print(res.wait())
print(res.get())
"""
name is 古明地觉, age is 17
name is 古明地觉, age is 17
"""
# 3. trackback:如果任务抛出了一个异常 , 可以获取原始的回溯信息
# 执行成功就是 None
print(res.traceback)
"""
None
"""
以上就是获取任务执行结果相关的部分 。
celery 的配置
celery 的配置不同 , 所表现出来的性能也不同 , 比如序列化的方式、连接队列的方式 , 单线程、多线程、多进程等等 。那么 celery 都有那些配置呢?
-
broker_url:broker 的地址 , 就是类 Celery 里面传入的 broker 参数 。
-
result_backend:存储结果地址 , 就是类 Celery 里面传入的 backend 参数 。
-
task_serializer:任务序列化方式 , 支持以下几种:
-
-
binary:二进制序列化方式 , pickle 模块默认的序列化方法;
-
json:支持多种语言 , 可解决多语言的问题 , 但通用性不高;
-
xml:标签语言 , 和 json 定位相似;
-
msgpack:二进制的类 json 序列化 , 但比 json 更小、更快;
-
yaml:表达能力更强、支持的类型更多 , 但是在 Python里面的性能不如 json;
根据情况 , 选择合适的类型 。如果不是跨语言的话 , 直接选择 binary 即可 , 默认是 json 。
-
-
result_serializer:任务执行结果序列化方式 , 支持的方式和任务序列化方式一致 。
-
result_expires:任务结果的过期时间 , 单位是秒 。
-
accept_content:指定任务接受的内容序列化类型(序列化) , 一个列表 , 比如:["msgpack", "binary", "json"] 。
-
timezone:时区 , 默认是 UTC 时区 。
-
enable_utc:是否开启 UTC 时区 , 默认为 True;如果为 False , 则使用本地时区 。
-
task_publish_retry:发送消息失败时是否重试 , 默认为 True 。
-
worker_concurrency:并发的 worker 数量 。
-
worker_prefetch_multiplier:每次 worker 从任务队列中获取的任务数量 。
-
worker_max_tasks_per_child:每个 worker 执行多少次就会被杀掉 , 默认是无限的 。
-
task_time_limit:单个任务执行的最大时间 , 单位是秒 。
-
task_default_queue :设置默认的队列名称 , 如果一个消息不符合其它的队列规则 , 就会放在默认队列里面 。如果什么都不设置的话 , 数据都会发送到默认的队列中 。
-
task_queues :设置详细的队列
# 将 RabbitMQ 作为 broker 时需要使用
task_queues = {
# 这是指定的默认队列
"default": {
"exchange": "default",
"exchange_type": "direct",
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 龙之家族|《龙之家族》这1细节,暗示了丹妮莉丝,才是最伟大的坦格利安?
- 小米|37岁财富自由!雷军接受央视采访:我要成伟大的人 小米要影响世界、造车是被逼的
- 中国最大的岛屿是日本岛 中国最大的岛屿是什么岛-张雪峰
- 盛明兰|重温《知否》,王老太师一生最大的败笔,就是娶了偏心的王老太太
- 韩剧|《当你沉睡时》:当噩梦照进现实,救赎和信任才是最强的陪伴
- 赵鹏翔|“李易峰”事件最大的受益者是谁?
- 罚罪|《罚罪》:大王现身,是全剧最大的反转吗,网友:不是的
- |能力,让一个人迅速脱颖而出,如何发挥出你的最强技能?
- 华为|喷问界M7不好看的人品位比较Low!余承东:华为做伟大的设计
- 最大的恐龙有多大 最大的恐龙排行榜前十名