Python实现定时任务


Posted in Python onFebruary 08, 2017

Python下实现定时任务的方式有很多种方式。下面介绍几种

循环sleep:

这是一种最简单的方式,在循环里放入要执行的任务,然后sleep一段时间再执行。缺点是,不容易控制,而且sleep是个阻塞函数。

def timer(n): 
  ''''' 
  每n秒执行一次 
  ''' 
  while True:  
    print time.strftime('%Y-%m-%d %X',time.localtime())  
    yourTask() # 此处为要执行的任务  
    time.sleep(n)

threading的Timer:

threading模块中的Timer能够帮助实现定时任务,而且是非阻塞的。

比如3秒后打印helloworld:

def printHello(): 
  print "hello world" 
 
Timer(3, printHello).start()

比如每3秒打印一次helloworld:

def printHello(): 
  print "Hello World" 
  t = Timer(2, printHello) 
  t.start() 
 
 
if __name__ == "__main__": 
  printHello()

使用sched模块:

sched是一种调度(延时处理机制)。

# -*- coding:utf-8 -*- 
# use sched to timing 
import time 
import os 
import sched 
 
 
# 初始化sched模块的scheduler类 
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。 
schedule = sched.scheduler(time.time, time.sleep) 
 
 
# 被周期性调度触发的函数 
def execute_command(cmd, inc): 
  ''''' 
  终端上显示当前计算机的连接情况 
  ''' 
  os.system(cmd) 
  schedule.enter(inc, 0, execute_command, (cmd, inc)) 
 
 
def main(cmd, inc=60): 
  # enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数, 
  # 给该触发函数的参数(tuple形式) 
  schedule.enter(0, 0, execute_command, (cmd, inc)) 
  schedule.run() 
 
 
# 每60秒查看下网络连接情况 
if __name__ == '__main__': 
  main("netstat -an", 60)

使用定时框架APScheduler:

APScheduler是基于Quartz的一个Python定时任务框架。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。

这个现在还没自己尝试过,等过段时间用了再来补充。

使用windows的定时任务:

这里可以将所需要的Python程序打包成exe文件,然后在windows下设置定时执行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python笔记(2)
Oct 24 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
python 获取网页编码方式实现代码
Mar 11 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Python实现FTP文件传输的实例
Jul 07 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
Nov 16 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
python基于property()函数定义属性
Jan 22 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python字符串拼接+和join的区别详解
Dec 03 Python
python使用matplotlib绘制柱状图教程
Feb 08 #Python
Python实现简单的多任务mysql转xml的方法
Feb 08 #Python
python使用matplotlib绘制折线图教程
Feb 08 #Python
关于Python中Inf与Nan的判断问题详解
Feb 08 #Python
python3.5实现socket通讯示例(TCP)
Feb 07 #Python
Python中字典的setdefault()方法教程
Feb 07 #Python
Python连接数据库学习之DB-API详解
Feb 07 #Python
You might like
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python subprocess模块常见用法分析
2018/06/12 Python
详解django.contirb.auth-认证
2018/07/16 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
武汉某公司的C#笔试题面试题
2015/12/25 面试题
Linux的文件类型
2016/07/05 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
毕业生就业自荐书
2013/12/15 职场文书
群众路线党课主持词
2014/04/01 职场文书
网站推广策划方案
2014/06/04 职场文书
质量月口号
2014/06/20 职场文书
社会发展项目建议书
2014/08/25 职场文书
代领报检证委托书范本
2014/10/11 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers