python消息队列celery_python异步任务神器celery

图片来源:http://blog.51cto.com/huangzp/2052713

最近生产环境的消息量越来越大,服务器采用nginx转发并负载均衡到tornado服务器,服务器有点处理不过来了。

分析了一下,有大量不需要实时返回结果的网络请求,所以打算将这一部分优化一下,使用异步进行处理。

通常异步处理使用的是的方式,我们先改造第一步,将服务器上的服务根据业务场景拆分为需要实时返回结果和可以异步处理两部分。

异步处理使用celery任务去处理,从上图可以看出,celery任务可以执行定时任务(由celery beat作为任务的生产者)和异步任务(由其它任务发起的异步调用)。所以异步任务的调用流程是。

按照上面的逻辑,实现celery异步任务需要以下几步:

1、创建celery应用

celery应用负责管理celery worker、指定Broker、Backend以及任务分发规则等,celery 应用的代码目录结构为:

里定义celery 应用

里列出里celery应用的配置参数

里定义了celery的task(worker)

2、调用异步任务

在其它业务里需要发起异步任务的地方调用

3、启动beat调度定时任务

开启调度所有定时任务,所有在celery_config.py的beat_schedule中的任务都会受调度

只开启调度一个定时任务,只需在启动worker时带上-B或者--beat参数即可,这种方式的缺点是只能调度一个定时任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值