Django的异步任务celery

本文介绍了如何在Django项目中使用Celery进行异步任务处理,包括安装Celery和Redis、配置文件设置、任务文件编写、启动Redis以及定时任务的配置和执行。通过Celery,可以有效提升用户体验,避免耗时操作导致的响应延迟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django的异步任务celery

在web开发中,要给用户发送邮件,发送短信,都属于耗时的操作,会导致给用户的响应时间变长,这种情况的解决方法,给用户先返回一个响应,不要影响用户的使用,将这些耗时的操作,放在后台执行,例如新开一个进程,celery就是解决这个问题。

  • celery组成部分
  • worker
    •   工人,执行任务的单元
      
  • broker
    •   消息中间件 即中间人
      
    •   用来在服务和worker中传递消息
      
    •   redis  RabbitMQ 
      
  • backend
    •   用来储存消息以及celery执行结果
      

1.安装

  • django+celery+redis

    pip install django-celery 
    pip install django-redis 
    pip install redis==2.10.6 
    

2.启动 redis

在redis文件夹中启动终端,输入redis-server.exe redis.windows.conf
在这里插入图片描述

3.连接和关闭redis

在redis文件夹中开一个新的终端,先连接redis输入redis-cli.exe,则连接上redis,若要断开redis输入shutdown。

连接
在这里插入图片描述
断开
在这里插入图片描述
新的终端断开则原来的终端也会断开连接

在这里插入图片描述

4.配置文件

安装注册

在这里插入图片描述
在这里插入图片描述
若有自定义的时区则要改
在这里插入图片描述
创建子应用
在这里插入图片描述
在主应用中创建一个文件(celery.py),用来编写celery的控制文件
在这里插入图片描述
在这里插入图片描述

5.编写任务文件 tasks.py

在这里插入图片描述
数据迁移

python manage.py makegrations
python manage.py migrate

在这里插入图片描述

6.启动redis

在终端输入 python manage.py celery worker --loglevel=info

启动前记得终端连接redis
在这里插入图片描述
在这里插入图片描述
视图和路由都要设置一下
在这里插入图片描述

7.结果

在这里插入图片描述
创建带参数的任务
在这里插入图片描述
执行结果
在这里插入图片描述

celery 的定时任务

配置settings中
在这里插入图片描述
新开一个终端输入
在这里插入图片描述
执行后
新终端
在这里插入图片描述
旧终端
在这里插入图片描述
两个终端都会输出
定时任务写法
timedelta
crontab
crontab(hour="/2") 每隔两小时执行一次
crontab(minute = 0,hour="
/2") 每隔两小时的0分执行一次
crontab(minute = 0,hour="*/2,8-12") 每隔两小时或者是8到12点执行
crontab(minute = 0,hour=0,day_of_month=“2-31/2”) 偶数天执行
crontab(minute = 0,hour=0,day_of_month=“1” month_of_year=“5”) 每年的5月1号
执行一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值