django-crontab 定时执行任务方法的实现

作者:katios 时间:2021-04-12 06:22:36 

需求

每天请求一封邮件,并读取该邮件

这个其实可以使用linux 自带了crontab实现,但是毕竟是django 开发。想着不知道有没有方法可以从django 中实现。

简单搜索了下,这方面的方法确实不少。

由于看到celery 插件学习曲线较大,这个小的需求就使用django-crontab 解决。

安装


pip install django-crontab

添加app名称到 settings.py中


INSTALLED_APPS = (
   'django_crontab',
   ...
 )

到这里基本没有问题。

接下来创建定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。

我选择的方法是自定义函数。

首先在原来的app 中(与view.py同级)新建一个cron.py (名字可以任意,其实也可以放在view.py中,新建文件方便管理。)


def test():
 print 123
 #你要执行的任务函数

在 settings.py中的最后增加


CRONJOBS = [
 ('*/5 * * * *', 'appname.cron.test','>>/home/test.log')
]

如果你有多个定时任务,都放入CORJOBS中即可,

需要说明的是,
‘/5 * * *' 遵循的是crontab 语法。

‘appname.cron.test',这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。

‘>>/home/test.log',通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>'表示追加写入,'>'表示覆盖写入。

启动

以上都完成后,需要执行


python manage.py crontab add

将任务添加并生效

显示当前的定时任务


python manage.py crontab show

删除所有定时任务


python manage.py crontab remove

重启django服务。

执行


corntab -e

应该是可以看到系统中创建了该定时任务。

说到底,只是django-crontab插件对linux底层的调用,不确定这个方法在windows 上是否生效。

大家可以多做尝试,看下github上的文档,对理解使用还是非常的有帮助。

各种路径一定要确保正确,否则较难排查错误。

介绍依据个人理解,难免疏忽遗漏,如果能帮到大家最好。

参考链接

github : https://github.com/kraiz/django-crontab

来源:https://blog.csdn.net/sinat_21302587/article/details/72831002

标签:django,crontab,定时
0
投稿

猜你喜欢

  • Python常见库matplotlib学习笔记之多个子图绘图

    2023-02-17 19:40:14
  • perl 调试命令的相关知识小结

    2022-10-01 14:09:48
  • Go语言实现枚举的示例代码

    2024-04-26 17:27:47
  • MySQL的存储函数与存储过程相关概念与具体实例详解

    2024-01-19 05:50:32
  • Python中property属性实例解析

    2022-02-04 20:38:12
  • python3的url编码和解码,自定义gbk、utf-8的例子

    2022-08-02 10:07:39
  • Python中Enum使用的几点注意事项

    2021-08-19 11:19:03
  • oracle sys_connect_by_path 函数 结果集连接

    2009-07-12 18:48:00
  • php开启openssl的方法

    2023-11-14 06:52:51
  • Python实现定时任务

    2022-06-12 04:53:31
  • CGArt®2008 贺岁刊电子杂志玉鼠闹春

    2008-02-15 08:59:00
  • php巧获服务器端信息

    2023-10-04 02:18:39
  • 在Pycharm中项目解释器与环境变量的设置方法

    2023-12-31 02:49:53
  • Django与数据库交互的实现

    2024-01-15 19:23:20
  • Asp中如何快速分页的技巧

    2008-05-17 12:02:00
  • asp如何连接MYSQL数据库?

    2010-01-01 15:49:00
  • 解决Dreamweaver不支持中文文件名方法

    2008-01-09 12:52:00
  • Python 字符串转换为整形和浮点类型的方法

    2021-09-02 00:09:31
  • Jsp生成页面验证码的方法[附代码]

    2023-06-25 07:46:42
  • python+Word2Vec实现中文聊天机器人的示例代码

    2023-08-04 13:11:29
  • asp之家 网络编程 m.aspxhome.com