Django 框架中制作定时触发脚本
Posted lowmanisbusy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 框架中制作定时触发脚本相关的知识,希望对你有一定的参考价值。
方法一:
Django搭建的服务器一般都用作WEB网站进行访问,通常的形式是用户访问网站或点击按钮发送请求,Django检测到请求后进行相应的试图函数处理后返回页面给用户。
但是,我们有时会需要有一些后台自动运行的任务,即使没有用户请求时也要自动运行,或者是定时运行或者是不断运行,怎么做呢?这里用到一个模块APScheduler这样的一个库,我们需要先安装一下。
pip install apscheduler==2.1.2
安装完成后,在Django工程目录下的urls.py文件中引入这个模块和写好的想要被自动执行的函数
from apscheduler.scheduler import Scheduler # 假设我要执行的函数时app01项目下的views.py中的func_01函数 from app_01.views import func_01
注:这个func_01方法可以定义在views.py文件中,也可以直接把方法体写在url.py中
引入好之后的具体代码为:
sched = Scheduler() #实例化,固定格式 # 装饰器,seconds=60意思为该函数为1分钟运行一次 @sched.interval_schedule(seconds=60) def mytask(): func_01() sched.start() #启动该脚本
转发自:http://www.bubuko.com/infodetail-2610004.html
方法二:
一、让Python随Linux开机自动运行 准备好要自启的脚本auto.py 用root权限编辑以下文件 sudo vim /ect/rc.local 在exit 0上面编辑启动脚本的命令(编辑rc.local 在其中的 exit 0 上面添加这一行代码) /usr/bin/python3.5 /home/edgar/auto.py > /home/edgar/auto.log 最后重启Linux,脚本就能自动运行并打印日志了。 二、让Python脚本定时启动 用root权限编辑以下文件 sudo vim /etc/crontab 在文件末尾添加以下命令 2 * * * * root /usr/bin/python3.5 /home/edgar/auto.py > /home/edgar/auto.log 以上代码的意思是每隔两分钟执行一次脚本并打印日志。 三、crontab编写解释 基本格式 * * * * * user command 分 时 日 月 周 用户 命令 四、举例说明 1、每分钟执行一次 * * * * * user command 2、每隔2小时执行一次 * */2 * * * user command (/表示频率) 3、每天8:30分执行一次 30 8 * * * user command 4、每小时的30和50分各执行一次 30,50 * * * * user command(,表示并列) 4、每个月的3号到6号的8:30执行一次 30 8 3-6 * * user command (-表示范围) 5、每个星期一的8:30执行一次 30 8 * * 1 user command (周的范围为0-7,0和7代表周日)
以上是关于Django 框架中制作定时触发脚本的主要内容,如果未能解决你的问题,请参考以下文章