使用APScheduler模块使Django服务启动时自动运行脚本(可设置定时运行)

Django搭建的服务器一般都用作WEB网站进行访问,通常的形式是用户访问网站或点击按钮发送请求,Django检测到请求后进行相应的视图函数处理后返回页面给用户。

但是,我们有时会需要有一些后台自动运行的任务,即使没有用户请求时也要自动运行,或者是定时运行或者是不断运行,怎么做呢?这里用到一个模块APScheduler这样的一个库,我们需要先安装一下。这里用的是2.1.2的版本。

pip install apscheduler==2.1.2

安装完成后,在Django工程目录下的urls.py文件中引入这个模块和写好的想要被自动执行的函数

注:这个fnc方法可以定义在views.py文件中,也可以直接把方法体写在url.py中

from apscheduler.scheduler import Scheduler  
  
from app01.views import fnc  # 假设我要自动执行的函数是app01下的views.py中的fnc函数

引入好之后的具体代码为:

sched = Scheduler()    # 实例化,固定格式
 
@sched.interval_schedule(seconds=60)    # 装饰器,seconds=60意思为该函数为1分钟运行一次
def mytask():  
    fnc()  
  
sched.start()    # 启动该脚本

完成上面的这些步骤以后runserver就OK啦,是不是又get一个新技能~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值