前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django使用django-crontab实现定时任务

django使用django-crontab实现定时任务

作者头像
earthchen
发布2020-09-24 11:28:48
8210
发布2020-09-24 11:28:48
举报
文章被收录于专栏:earthchen的专栏

在做一个django项目的时候,我遇到了一个定时任务的需求,我这里是需要定时扫描数据库并发送邮件,在查阅相关资料后,总结出如下几个方法

  1. 使用while创建一个死循环,判断时间,从而执行一些函数
  2. 使用APScheduler库实现定时任务 (详情可以见http://blog.csdn.net/hui3909/article/details/46652623)
  3. django-crontab实现定时任务
  4. django-celery实现定时任务

django-crontab实现定时任务

在我斟酌再三,最终还是选择了django-crontab这个方法,这个方法最契合我的需求,同时也相对简单,所以本文也就着重介绍一下

django-crontab安装

安装django-crontab库

这里使用pip安装即可,在终端输入以下命令即可

代码语言:javascript
复制
pip install django-crontab
在工程里使用django-crontab

在django项目的settings.pyINSTALLED_APPS添加django-crontab

django-crontab配置

django-crontab可以定时运行自定义命令和函数两种方式

定时函数

在django项目的settings.py中添加以下命令

代码语言:javascript
复制
CRONJOBS = (
    ('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名'),
    ('0   0 1 * *', '你的app名.定时函数所在的py文件名.定时函数名', '> 输出文件路径和名称'),
)
  • 第一种的意思就是每一分钟执行一次你的定时函数
  • 第二种时定时函数输出的内容到指定文件(如果该路径或文件不存在将会自动创建)
定时命令
代码语言:javascript
复制
CRONJOBS = (
    ('10 12 * * *', 'django.core.management.call_command', ['要执行的命令']),
)
  • 意思是在12点10分执行命令

定时任务的操作

  1. python manage.py crontab add  添加定时任务
  2. python manage.py crontab remove 清除定时任务
  3. python manage.py crontab show 显示定时任务
  • 当你添加了或者修改的定时任务,只需执行命令1即可
  • 如果你想删除定时任务,请执行命令2

注:

  • 当定时任务执行时,如果你只是一些输出语句,那么你将看不到任何内容。请不要怀疑没有执行
  • 上述环境在ubuntu16.04 lts django1.9中测试成功
  • 上述文字皆为个人看法,如有错误或建议请及时联系我
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-17,,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • django-crontab实现定时任务
    • django-crontab安装
      • 安装django-crontab库
      • 在工程里使用django-crontab
    • django-crontab配置
      • 定时函数
      • 定时命令
    • 定时任务的操作
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档