django-crontab实现定时任务

django-crontab实现定时任务

官方文档:https://github.com/kraiz/django-crontab

  • 安装django-crontab:pip install django-crontab
  • 在settings.py中注册任务:
    INSTALLED_APPS = [
    	...
        'django_crontab',
    ]
    
  • 在settings.py中配置
    CRONJOBS = [
        # 定时执行自定义函数
        # ('*/1 * * * *', 'app名.定时函数所在的py文件名.定时函数名', '>> 输出文件路径和名称')
        # 每1分钟执行restart_pm2函数,并将执行中的返回的内容全部打印到crontab.log文件中
        ('*/1 * * * *', 'app1.tasks.test11', '>>/home/tianchi/apps/ecology/logs/crontab.log'),
        
        # 定时执行django中自定义命令
        # 每1分钟执行django的自定义命令,并将执行中的返回的内容全部打印到crontab.log文件中
        # ('*/1 * * * *', 'django.core.management.call_command', ['命令名'], {"参数名": "参数值"}, '>>输出文件路径和名称'),
        ('*/1 * * * *', 'django.core.management.call_command', ['mycommand2'], {"param": "mycommand2_test"}, '>>/home/tianchi/apps/ecology/logs/crontab.log')
    ]
    
  • 定时任务-自定义函数:在对应的应用下创建task.py文件(apps/app1/task.py),并创建函数即可
    def test11():
        from time import strftime, localtime
        print(strftime("%Y-%m-%d %H:%M:%S", localtime()), end='')
        print("执行了test11函数")
    
  • 定时任务-django自定义命令:详阅djano自定义命令
  • 添加并开启定时任务:python manage.py crontab add
  • python环境查看定时任务:python manage.py crontab show
  • 删除定时任务:python manage.py crontab remove
  • 在linux中(root下)查看定时任务: crontab -l
  • 注意:django-crontab只能基于linux环境使用
    • 查看cron服务status:service cron status
    • 开启cron服务:service cron start
    • 查看cron日志:tail -fn 100 /var/log/cron.log

版权声明:本文为weixin_37008947原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。