首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django中使用Celery

安装依赖

这里的依赖库的作用分别是:

celery:核心库

django:核心库

django-celery-beat:用于实现定时任务

django-celery-results:用于获取任务结果

django-redis和redis:是任务底层的驱动依赖,另一种依赖是RabbitMQ,这里更推荐Redis,因为Redis在大多数项目中都能用得到。如果使用RabbitMQ,可能会造成额外的依赖。

eventlet:这个是任务的事件驱动,主要用来启动任务的。

mysqlclient:这个是MySQL数据库的驱动。

配置Celery

首先,我们需要配置应用信息:

这里的django_celery_beat和django_celery_results都自带了很多的模型,要让其能够正常的使用,我们需要在配置了应用以后,执行模型迁移:

接着是配置数据库,这里一般推荐使用MySQL数据库:

接着是配置语言和时区,这点比较重要。

设置broker,这个是最重要的配置:

其他的一些常用配置:

配置定时任务:

更多Crontab定义案例如下所示:

crontab()每分

crontab(minute=0, hour=0)每天午夜

crontab(minute=0, hour='*/3')能被3整除的小时数,3,6,9点等等

crontab(minute=0,``hour='0,3,6,9,12,15,18,21')与前面相同,指定小时

crontab(minute='*/15')每15分钟

crontab(day_of_week='sunday')星期日每分钟

crontab(minute='',``hour='', day_of_week='sun')同上

crontab(minute=0, hour='/2,/3')可以被2或3整除的小时数,除了 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pm

crontab(minute=0, hour='*/5')可以被5整除的小时

crontab(minute=0, hour='*/3,8-17')8am-5pm之间可以被3整除的小时

crontab(0, 0, day_of_month='2')每个月的第2天

crontab(0, 0,``day_of_month='2-30/2')每月的偶数日

crontab(0, 0,``day_of_month='1-7,15-21')每月的第一和第三周

crontab(0, 0, day_of_month='11',``month_of_year='5')每年的5月11日

crontab(0, 0,``month_of_year='*/3')每个季度首个月份每天

创建Celery对象

在项目目录下创建celery.py:

在项目目录下修改__init__.py:

创建任务

创建index/tasks.py:

配置定时任务

启动任务

开启一个终端,执行以下命令启动任务调度器:

查看任务结果

启动服务,登录到后台可以查看任务结果。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OPhA7SpezWNoFW9hH0qVi-Zw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券