100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python消息队列celery_python异步任务神器celery

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

时间:2021-04-24 21:46:35

相关推荐

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

图片来源:/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参数即可,这种方式的缺点是只能调度一个定时任务

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。