时间:2021-05-22
前言
Django项目有一个耗时较长的update过程,希望在接到请求运行update过程的时候,Django应用仍能正常处理其他的请求,并且update过程要求不能并行,也不能漏掉任何一个请求
使用celery的solo模式解决
安装redis
https://github.com/microsoftarchive/redis/releases
下载.msi文件安装,会直接将redis注册为windows服务
安装celery与redis依赖
一个celery应用
启动celery服务
查看完整的命令行参数列表
对celery启动命令的解释
调用任务
因为启动了solo模式,因此,可以看到在一个add没有执行完前,即使再次发送执行add的任务,celery worker也会等到前一个任务执行完才去执行下一个
与Django结合
在装载celery应用前先setup django
然后在views中调用task就可以了。
执行过程中,程序的print信息会作为celery warning,报错信息会作为celery error
日志
在启动应用的时候指定日志文件路径
不设置这个参数的时候,日志默认输出到控制台
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
起步在《分布式任务队列Celery使用说明》中介绍了在Python中使用Celery来实验异步任务和定时任务功能。本文介绍如何在Django中使用Celery。
Celery简介除了redis,还可以使用另外一个神器---Celery。Celery是一个异步任务的调度工具。Celery是DistributedTaskQu
celery简介celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程,如Even
串行任务:需要一个接着一个坐的任务叫做串行任务。可以使用回调的方式让几个异步任务按顺序执行,但如果任务过多,必须组织一下,否则过多的回调嵌套会把代码搞得很乱。为
这篇文章主要讲一下如何串行执行一组异步任务,例如有下面几个任务,在这里我们用setTimeout模拟一个异步任务:lettaskA=()=>setTimeout