32-Celery-其他

发布时间 2023-04-03 09:41:34作者: 测试圈的彭于晏

1. 查看异步任务情况

# Celery提供了一个工具flower,将各个任务的执行情况、各个worker的健康状态进行监控并以可视化的方式展现,

# 1. 安装flower:
    pip install flower==0.9.1

# 2. 启动flower (默认会启动一个webserver,端口为5555):
    celery flower --broker=redis://localhost:6379/5
    
   # 有密码或者报错使用以下顺序
      celery --broker=redis://:root@192.168.00.000:6379/5 flower

# 3. 即可查看
    http://localhost:5555

2. 内存泄漏

# 1. 说明
    长时间运行Celery有可能发生内存泄露,可以像下面这样设置

# 2.settings.py配置
    CELERYD_MAX_TASKS_PER_CHILD = 1000 # 每个worker执行了多少任务就会死掉

# 3. 常用配置清单
  1. 说明
  2.配置信息
    #from kombu import Queue,Exchange
    #设置Broker和backend
    BROKER URL = 'redis://127.8.0.1:6379/0'
    #BROKER_URL = 'redis://:root@192.168.37.132:6379/5'  # @前面是redis密码,密码前必须加 :
    #将数据存放到redis1数据库,redis默认有16个数据库
    CELERY_RESULT_BACKEND ='redis://127.0.0.1:6379/1'

    CELERY_TASK_SERIALIZER = 'json'  # 任务序列化和反序列化使用json
    CELERY_RESULT_SERIALIZER = 'json'  # 结果序列化为json
    CELERY_ACCEPT_CONTENT =["json"]     #分布式接受数据的类型为json
    CELERY_TIMEZONE ="Asia/Shanghai"  #使用中国上海时区
    CELERY_ENABLE_UTC = True        

    CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # 后存储任务超过一天,则自动清理数据,单位为秒
    CELERYD_MAX_TASKS_PER_CHILD = 1000  # 每个worker最多执行1000个任务就会自动销毁,可防止内存泄漏