zoukankan      html  css  js  c++  java
  • django定时任务小插件

    需求

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

    这个其实可以使用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 在Linux的crontab 中创建了一条定时任务,目前在Windows上不兼容

  • 相关阅读:
    学习angularjs的ng-hide和ng-disabled
    Angularjs实现select的下拉列表
    练习ng-show和ng-hide的方法
    练习angularjs的ng-click的应用
    ng-include文件实现ng-repeat
    JQuery加载html网页
    指定时间内网站访问次数的监控
    AWK 技巧(取倒列,过滤行,匹配,不匹配,内置变量等)
    Linux下FastDFS分布式存储-总结及部署记录
    Linux下IP SAN共享存储操作记录
  • 原文地址:https://www.cnblogs.com/liruixin/p/7550421.html
Copyright © 2011-2022 走看看