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之配置日志的几种方式
May 22 Python
详细分析python3的reduce函数
Dec 05 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
Python实现网站表单提交和模板
Jan 15 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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
thinkphp特殊标签用法概述
2014/11/24 PHP
joomla数据库操作示例代码
2016/01/06 PHP
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python树的同构学习笔记
2019/09/14 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
python opencv实现图像配准与比较
2021/02/09 Python
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
Servlet的生命周期
2013/08/25 面试题
师德学习感言
2014/01/31 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
学校消防演习方案
2014/02/19 职场文书
质量承诺书范文
2014/03/27 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
高中政治教师教学反思
2016/02/23 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang