Django crontab

1. 安装

  pip install django-crontab

2. 添加app

  在 settings.py 文件中添加 django-crontab:
  INSTALLED_APPS = (
  ...
  'django_crontab',
  )

3. 配置

   定时函数

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

CRONJOBS = [
    # 定时函数每分钟执行一次
    ('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名'),
    # 将定时函数执行结果输出到指定文件(如果该路径或文件不存在将会自动创建)
    ('*/1 * * * *', '你的app名.定时函数所在的py文件名.定时函数名', '>> 输出文件路径和名称')
]
例如:
CRONJOBS = [
    # 定时函数每分钟执行一次
    ("*/1 * * * *", "app.views.check", ">>/home/test.log"),
    ("*/1 * * * *", "app.views.check_connect", ">>/home/target_test.log"),
    ("*/1 * * * *", "app.views.connect", ">>/home/soft_test.log")
]

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")# project_name 项目名称 要并写正确
django.setup()

4. 操作命令

查看系統中已有的定时任务:python manage.py crontab show
添加和修改定时任务:python manage.py crontab add
# 每次CRONJOBS中的任务发生变化时,都要执行一遍该命令。
删除定时任务:python manage.py crontab remove
# run 是立刻运行这个定时任务
# linux 查看当前用户 定时任务,编辑
crontab -e

列出目前的crontab
crontab -l

注意:django_crontab一定要注册在应用名之前
#django中单次手动执行定时任务
python manage.py crontab run <tash_hash_id>

django-crontab不支持windows和mac系统;在windows上执行会报错

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

crontab -e
查看crond服务状态:

#查看状态
service crond status
#开启服务
service crond start
#关闭服务
service crond stop
#重启服务
service crond restart

 crontab -l  当前任务存在,但是不生效:

手动启动crontab服务:

find / -name crond
/usr/sbin/crond start

报错:sh: /usr/bin/crontab: No such file or directory

yum -y install crontabs

crond服务

安装crontab:

yum install crontabs

参考:https://www.cnblogs.com/stssts/p/10097511.html

 

posted @ 2021-03-21 21:58  半日闲1  阅读(286)  评论(0编辑  收藏  举报