![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Celery笔记
文章平均质量分 86
vv安的浅唱
致力于撰写每一篇跑通过实例的博客,更多文章信息可搜索关注【Hunter后端】
展开
-
Celery笔记九之task运行结果查看
这一篇笔记介绍一下 celery 的 task 运行之后结果的查看。是将 task 的运行结果保存在 redis 的第二个数据库(数据库索引从0开始)。我们还可以将 task 的运行结果保存到 Django 的数据库,这一篇笔记将介绍如何查看 redis 和 Django 数据库中 task 运行的结果。原创 2022-09-12 21:27:30 · 2327 阅读 · 1 评论 -
Celery笔记八之数据库操作定时任务
其中 django_celery_beat_clockedschedule 和 django_celery_beat_solarschedule 暂时不介绍执行 celery 的 beat 后,会在该表新增一条数据,表的字段就是我们设置的 crontab() 里的值,包括 minute,hour,day_of_week,day_off_month,month_of_year 和 timezone。原创 2022-09-12 21:26:38 · 1470 阅读 · 1 评论 -
Celery笔记七之定时任务及crontab定义
我们来定义两个定时任务,一个是 blog.tasks.add,定义为每隔 30s 执行一次,现在晚上11点45分,我们定义每天11点50分执行一次。在进行这些操作前,我们还需要对时区有一些设置,因为我们设置的晚上11点是北京时间,而 Django 和 celery 默认是格林威治时间。时区设置我们使用 Django 系统,一些配置在 settigns.py 中定义,详情可以见前几篇笔记的 celery 与 Django 系统使用。原创 2022-09-12 21:25:21 · 2529 阅读 · 0 评论 -
Celery笔记六之worker介绍
前面我们介绍过 celery 的理想的设计方式是几个 worker 处理特定的任务队列的数据,这样可以避免任务在队列中的积压。这一篇笔记我们介绍一下如何使用 worker 提高系统中任务的处理效率。原创 2022-09-12 21:24:05 · 1783 阅读 · 1 评论 -
Celery笔记五之消息队列
我们可以设想一下这个场景,我们只有一个 worker 处理 task,每个 task 需要处理的时间很长,因为 worker 被占用,这样在我们的任务队列里就会积压很多的 task。有一些需要即时处理的任务则会被推迟处理,这样的情况下,我们理想的设计是设置多个 worker,多个 worker 分别处理指定队列的 task。关于 worker 的设置,比如添加多个 worker,给 worker 消费指定队列的 task,我们在 worker 的笔记中再介绍,这里我们介绍一下如何定义队列。原创 2022-09-07 20:59:06 · 867 阅读 · 0 评论 -
Celery笔记四之在Django中使用celery
在 Django 的 tasks 里我们会把 task 都写在可重复使用的 app 下,比如 blog,但是这些 app 不能依赖于项目本身,所以不能直接引入这些app实例@shared_task 装饰器可以让你在不需要任何具体的 app 实例的情况下创建 task以上是官方文档给出的一段介绍,u1s1,我不太理解这段话的含义,但是我们照做就行了,就是在 Django 的 task 中,我们使用 @shared_task 来修饰那些 task 即可。原创 2022-09-07 20:56:40 · 490 阅读 · 0 评论 -
Celery笔记三之task和task的调用
如果是在 Django 系统中使用 celery,需要定义一个延时任务或者周期定时任务,可以使用 @shared_task 来修饰在 Django 系统中使用 celery 的方式会在接下来的几篇笔记中介绍道。多个装饰器task名称每个 task 都有一个唯一的名称用来标识这个 task,如果我们在定义的时候不指定,系统会为我们默认一个名称,这些名称会在 celery 的 worker 启动的时候被系统扫描然后输出一个列表展示。可以看到这个地方,系统就会使用我们定义的 name 了。原创 2022-09-07 20:54:44 · 3112 阅读 · 0 评论 -
Celery笔记二之celery项目建立、配置及加载方式介绍
我们建立了一个名为 proj 的文件夹作为我们的项目文件夹,其下有两个文件,celery.py 和 tasks.pycelery.py在这里,我们还是对 celery 进行了实例化的操作,但是在这里项目名称改为了 proj,也就是这个文件的上一级文件夹名称broker、backend 还是对应的配置但是因为对应的任务我们是单独以文件的形式引入,所以,在这里引入的方式是通过 include 的方式来实现的。原创 2022-09-07 20:53:18 · 865 阅读 · 0 评论 -
Celery笔记一之celery介绍、启动和运行结果跟踪
celery 大致有两种应用场景,一种是异步任务,一种是定时任务。比如说在一个接口请求中,某个函数执行所需的时间过长,而前端页面并不是立刻需要在接口中获取处理结果,可以将这个函数作为异步任务,先返回给前端处理中的信息,在后台单独运行这个函数,这就是异步任务。另一个比如说某个函数需要每天晚上运行一遍,不可能人天天守着后台手动执行一遍这个函数,那么就可以用 celery 来实现这个定时的周期任务。task。原创 2022-09-07 20:50:38 · 2107 阅读 · 0 评论