本文记录django中如何使用celery完成异步任务。
在成都网站制作、做网站中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联建站专业成都网站建设10余年了,客户满意度97.8%,欢迎成都创新互联客户联系。Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。
它是一个专注于实时处理的任务队列,同时也支持任务调度。
官方网站
中文文档
示例一:用户发起request,并等待response返回。在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验
示例二:网站每小时需要同步一次天气预报信息,但是http是请求触发的,难道要一小时请求一次吗?
使用celery后,情况就不一样了
示例一的解决:将耗时的程序放到celery中执行
示例二的解决:使用celery定时执行
名词
任务task:就是一个Python函数
队列queue:将需要执行的任务加入到队列中
工人worker:在一个新进程中,负责执行队列中的任务
代理人broker:负责调度,在布置环境中使用redis
本示例在ubuntu系统中,使用django1.8.2,并且要安装redis
1,首先需要安装扩展包。
pip install celery==3.1.25 pip install celery-with-redis==3.0 pip install django-celery==3.1.17
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。