Django(十四):异步任务celery(安装celery+redis+配置settings)

前言

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

celery组成部分

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

django+celery+redis

安装

pip install django-celery

pip install django-redis

pip install redis==2.10.6

启动redis服务

链接redis服务和关闭redis服务

Django的celery异步任务

和之前的开发相比,django-celery只是将任务发布出去,处理耗时操作

发送邮件,发送短信,爬虫,使用异步任务去实现,使得主进程不会阻塞,web服务只是负责发起任务和接收任务的结果,中间执行的过程交给异步任务处理。

安装注册

 

创建一个子应用

在项目主目录总创建一个文件(celery.py),用来编写celery的控制文件

 

编写任务文件 tasks.py

创建第一个任务

数据迁移

启动celery

python manage.py celery worker -- loglevel=info

创建带参数的任务

执行任务

celery的定时任务

配置settings中

启动定时任务

启动之前,确保redis,worker启动,再去启动定时任务

python celery定时任务的写法

timedelta
crontab
    crontab(hour = "*/2")   每隔两小时执行一次
    crontab(minute = 0,hour = "*/2")   每隔两小时的0分执行一次
    crontab(minute = 0,hour = 0,day_of_month="2-31/2" )   偶数天执行
    crontab(minute = 0,hour = 0,day_of_month="1",month_of_year="5")  每年的五月1号执行

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值