Django 定时任务

官方网址

https://pypi.org/project/django-crontab/

配置时间
在这里插入图片描述

crontab 文件中每个条目中各个域的意义和格式:

第一列 分钟: 1——59

第二列 小时: 1——23(0表示子夜)

第三列 日 : 1——31

第四列 月 : 1——12

第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)

第六列 要运行的命令

我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用 * ; */n ; T1-T2; a,b,c; 四种形式来表示:

当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推.....

当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推....

当 C1 为 */n 时表示每 n 分钟的时间间隔执行一次,C2 为 */n 表示每隔n小时的间隔执行一次,依次类推.....

当 C1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,C2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,依次类推....

下面列举几个例子供大家参考

1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

表示每天23点59分执行脚本/home/oracle/scripts/alert_log_archive.sh

2: */5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1

表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh

3: 0 20 * * 1-5 mail -s "**********" kerry@domain.name < /tmp/maildata

周一到周五每天下午 20:00 寄一封信给 kerry@domain.name
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 本身不提供定时任务的功能,但是可以通过结合第三方库来实现。以下是一个使用 django-crontab 库实现定时任务的示例: 1. 首先安装 django-crontab: ``` pip install django-crontab ``` 2. 在 Django 项目的 settings.py 文件中添加以下配置: ``` INSTALLED_APPS = [ # ... 'crontab', ] CRONJOBS = [ ('*/5 * * * *', 'yourapp.tasks.task1'), # 每5分钟执行一次 task1 ('0 1 * * *', 'yourapp.tasks.task2'), # 每天凌晨1点执行 task2 ] ``` 其中,CRONJOBS 是定时任务的配置,具体格式可以参考 crontab 文档。这里演示了两个定时任务,分别是每5分钟执行一次的 task1 和每天凌晨1点执行的 task2。 3. 在 Django 项目中新建一个名为 tasks.py 的文件,编写定时任务的代码: ``` def task1(): # 在这里编写 task1 的逻辑 pass def task2(): # 在这里编写 task2 的逻辑 pass ``` 4. 在 Django 项目的 urls.py 文件中添加以下配置: ``` from django.urls import path from crontab.views import run_cron urlpatterns = [ # ... path('runcrons/', run_cron), ] ``` 这里添加了一个名为 runcrons 的 URL,用于手动执行定时任务。 5. 在 Django 项目的 manage.py 文件中添加以下代码: ``` from crontab import CronTab cron = CronTab(user='yourusername') # 将定时任务写入系统的 crontab for job in settings.CRONJOBS: cron_job = cron.new(command=f'python {sys.argv[0]} runcrons {job[1]}') cron_job.setall(job[0]) cron.write() ``` 这里使用了系统的 crontab 来实现定时任务。将 Django 项目的定时任务写入系统的 crontab 中,可以保证即使 Django 项目重启,定时任务也不会中断。 6. 启动定时任务: ``` python manage.py crontab add ``` 至此,就完成了 Django定时任务配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值