Celery进阶,多队列,Flower监控, Supervistor进程管理

本文介绍了Celery如何实现多队列和优先级队列以优化任务执行,以及任务失败时的重试机制。通过配置不同队列,可以确保高优先级任务优先执行,减少等待时间。同时,文章提到了使用Flower进行任务监控,方便在生产环境中排查问题。此外,还推荐了Supervisor作为进程管理工具,确保worker的稳定运行。

本篇内容包括Celery多队列,异步任务失败重试,任务执行过程的监控,以及生产环境下在服务器上如何管理以及维护好每一个队列等等。

1.celery分布式队列,优先级队列,任务失败重试

这里简单的说一下多队列的使用场景,比如说你现在的系统中一共有两个异步任务,其中任务A花费时间大约是5秒,任务B花费时间大约是0.5秒。任务B的重要性比任务任务A要高很多很多。系统每次都会往队列中放10个任务A和一个任务B。在并发量很大的情况下就会因为任务A花费时间较长从而造成队列阻塞,导致后边特别多的任务B需要较长的等待时间才可以被执行。
而如果你的系统中共有两个队列,就可以为不同的队列分别设置worker去各自消费各自的消息,从而达到以上的效果。或者可以设置优先级队列也可以实现。

(1)首先说下多队列

# 配置 queue 队列
CELERY_QUEUES = (
    Queue('default', routing_key='default'),
    Queue('queue_item', routing_key='apps.item.tasks'),
    Queue('queue_daily', routing_key='apps.daily.tasks'),
)

# 配置每一个Task的Router
CELERY_ROUTES = {
   
   
    'apps.item.tasks.event_list': {
   
   
        'queue': 'queue_item',
        'routing_key': 'apps.item.tasks',
    },
    'apps.item.tasks.actual_personday': {
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值