把Celery集成到Django里之计划任务

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

实验环境和前期设置接上篇把Celery集成到Django里之异步任务。

第一步,为了让计划任务执行的时间符合我们的预期,我们先在myproj/myproj/settings.py添加一个Celery需要的时区变量:

CELERY_TIMEZONE = "Asia/Shanghai"

第二步,然后我们在myproj/app1/tasks.py里添加计划任务,根据Celery官方文档,添加计划任务有以下两种方式:

import time
from celery import shared_task
from myproj import myproj_celery #myproj/myproj/__init__.py(参见上一篇)
from celery.schedules import crontab

@shared_task
def add(x, y):
    #为了看到异步效果,我们睡一分钟再执行
    time.sleep(60)
    return x + y
	
#第一种 计划任务
@myproj_celery.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    #每十秒执行一次异步任务add(10,20)
    sender.add_periodic_task(10.0, add.s(10, 20), name='call task add(10,20) every 10 seconds')

    #每个周一早上7点半执行异步任务add(20, 30)
    sender.add_periodic_task(
        crontab(hour=7, minute=30, day_of_week=1),
        add.s(20, 30),
    )


#第二种 计划任务
myproj_celery.conf.beat_schedule = {
    #每十秒执行一次异步任务add(10,20)
    'add-
使用django_celery_beat在admin后台配置计划任务 django中使用celery做异步任务和计划任务最头疼的点就是包之间版本兼容性问题,项目一启动花花报错,大概率都是版本问题。每次都会花很大时间在版本兼容性问题上。如果是其他版本的django且有兼容性问题,推荐一个工具。,这玩意可以清晰展示包间依赖关系和版本冲突,很方便。 阅读详情

相关推荐

Django项目中使用celery做异步任务_djangocelery实现异步

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。基本上主流的和经典的都有,这我就不放图了,版权问题,个人看看是没有问题的。

碧海朝天素 1070

django中使用apscheduler 执行计划任务的实现方法

对于任何软件开发人员而言,为将来计划任务都是必不可少的工具。 尽管我们创建的许多编程旨在响应明确的触发或用户事件,但定期执行的后台进程也同样重要。 “每个星期一早晨更新结果。” “每天晚上分批下单。” 甚至具有每日请求限制的第三方API也隐式要求这种行为。 “我们只能每五分钟请求一次更新。” 幸运的是,许多聪明的人已经解决了这个问题,并且不难找到python本地解决方案。 Advanced Python Scheduler(APS)是一个很好的选择,它具有简单,直观的API以及同类产品中的一些最佳文档。 对于此项目,我们将专注于将APS提供的调度技术与您的常规Django应用程序集成:洛杉矶天

Django中实现异步执行用例和套件以及计划任务

Django应用程序中,有时候我们需要执行一些耗时的操作,例如处理大量数据、发送电子邮件或与外部API进行交互。要异步执行任务,您可以在任何需要的地方调用任务函数。通过使用Django中的异步执行和计划任务功能,我们可以实现在后台处理耗时操作和定期执行任务。除了异步执行用例和套件,我们还可以使用Django计划任务功能来定期执行一些任务。在上面的例子中,当用户提交表单时,我们从请求中获取电子邮件的相关信息,并通过调用。库设置计划任务,并使用Django的定时器来确保按计划执行任务。

JfpBlockchain的博客 521

django项目添加计划任务定时执行

一、环境 CentOS Linux release 7.3.1611 (Core) 必须是LINUX的操作系统 Python 2.7.5 django 1.9.9 二、安装 django-crontab模块 可从此链接下载再安装 https://files.pythonhosted.org/packages/37/bd/a122ba96167f5dfab70a58ca22fa04...

lsysafe的博客 2万+

使用 Django 实现定时任务

Celery 是一个 Python 分布式任务队列,它可以用来在后台执行异步任务。通过结合DjangoCelery,我们可以很方便地实现定时任务功能。

Code掘金的博客 1547

Django+Django-Celery+Celery的整合实战

本篇文章主要是由于计划使用django写一个计划任务出来,可以定时的轮换值班人员名称或者定时执行脚本等功能,百度无数坑之后,终于可以凑合把这套东西部署上。本人英文不好,英文好或者希望深入学习或使用的人,建议去参考官方文档,而且本篇的记录不一定正确,仅仅实现crontab 的功能而已。 希望深入学习的人可以参考http://docs.jinkan.org/docs/celery/。 首先简单介绍...

菲宇运维 2万+

Django中配置celery

目录 创建Celery 配置Celery参数 创建celery实例 定义模拟函数 创建celery worker 创建异步任务 异步执行任务 为任务指定不同队列 计划任务 设定celery时区 定义计划任务 创建Celery 配置Celery参数 在创建celery实例之前,需要对celery的参数进行一些配置。 在这列出一些比较常用的Celery配置项: ...

Lazy 1064

Django项目使用celery+redis实现计划任务

本文介绍了在Django项目中使用Celery和Redis实现计划任务的方法。主要实现每天8:30发送短信提醒的功能。首先配置了Celery环境,包括创建celery.py文件、修改__init__.py和settings.py文件。然后创建了tasks.py文件定义定时任务,任务会查询未接收的任务并发送短信提醒。最后通过django-celery-beat配置周期性任务,在后台管理界面设置每天固定时间触发任务。项目使用Redis作为消息代理,实现了可靠的定时任务调度功能。

m0_51453764的博客 776

django-celery-beat自动调度异步任务

它支持使用任务队列的方式在分布的机器、进程、线程上执行任务调度。Celery不仅支持异步任务(如发送邮件、文件上传、图像处理等耗时操作),还支持定时任务,即需要在特定时间执行的任务。Celery本身不提供消息服务,需要借助RabbitMQ、Redis等消息中间件,本项目使用的是Redis。。它包含一个调度器,负责根据配置的时间表计划任务的执行。这些任务通常是Celery任务,即异步执行的函数或方法。

凡梦千华的博客 3516

Django Report Builder与Celery集成:异步报表生成的最佳实践

Django Report Builder是一个强大的Django ORM图形界面工具,它允许系统管理员和有能力的最终用户构建自定义查询和显示结果,而无需编程技能或直接访问数据库shell。当处理大量数据或需要生成复杂报表时,同步报表生成可能会遇到性能问题。本文将深入探讨如何将Django Report Builder与Celery集成,实现异步报表生成的最佳实践。 ## 🚀 为什么需要异步报

gitblog_01004的博客 852

Celery集成Django之异步任务

Celery集成Django并执行异步任务,Celery的消息队列和任务结果我们都使用redis来存储

steptodream的专栏 447

celery分布式异步框架(celery的简单使用,celery多任务结构,celery定时任务,celery计划任务celerydjango项目中使用)

前言基础: 同步: 提交一个任务,必须等待任务执行结果才能接着提交任务。 异步: 调教任务后,将任务交由后台的其他执行任务的进程或者线程来处理,用户可以继续提交任务,并且任务处理完调用回调函数讲任务提交结果返回。 分布式: 一个任务拆开分为多部,交到不同的计算机执行,极大的提高了执行效率,因为多台计算机的处理性能较高 为什么使用CELERY而不使用线程发送耗时任务。 主要是因为并发比较大的时候,线...

python基础 2115

Django集成Celery异步执行任务(二)

django celery redis rest framework

qq_42794720的博客 693

Django+Celery学习笔记3——django+celery+redis实现异步任务与定时任务

  引言   前面已经学习了celery+redis的异步和定时任务,下面介绍如何结合django来使用。   环境配置   在动手之前,一定要准备好的是环境,celery版本有很多,在使用过程中如何版本与django和redis版本不配套,将会很麻烦。   我这的环境如下: celery==4.3.0 Django==2.2.2 django-celery-beat==1.5.0 ...

像蚂蚁一样工作,像蝴蝶一样生活 1449

Django高级扩展之系统后台使用celery

主要步骤为:安装三方类库,后台添加定时任务,命令行启动celery队列。

json_li的博客 1697

Django项目中使用celery做异步任务

异步任务介绍 在写项目过程中经常会遇到一些耗时的任务, 比如:发送邮件、发送短信等等~。这些操作如果都同步执行耗时长对用户体验不友好,在这种情况下就可以把任务放在后台异步执行 celery就是用于处理异步任务的框架,celery能完成的功能远不止异步任务,还有一个很常用的功能定时任务 架构图 Celery包含如下组件: Celery Beat:任务调度器,Beat进程会读取配置文件的...

python学习者的博客 1978

DjangoCelery-使用

目录 创建任务 调用 生成数据库表 启动worker 获取任务执行结果 定时,计划任务 创建任务 from celery import shared_task import time @shared_task def hello_celery(loop): for i in range(loop): print('hello') time.sleep(...

piduocheng0577的博客 396

celerydjango的USE_TZ为False时不停的执行任务调度

环境 Django==2.0.13 # 使用celery实现计划任务!! celery==4.3.0rc1 redis==3.0.1 django-celery-beat==1.4.0 django-celery-results==1.0.4 现象 不停的执行Scheduler: Sending due task [2019-02-26 15:40:03,798: INFO/MainProces...

池塘 3261
上一篇: 把Celery集成到Django里之异步任务
下一篇: 保护Django的Media目录
steptodream
博客等级 码龄18年 1376粉丝 · 18原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值