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和bash统计CPU利用率的方法
Jul 10 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
python 初始化一个定长的数组实例
Dec 02 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
Python动态导入模块和反射机制详解
Feb 18 Python
Python PIL库图片灰化处理
Apr 07 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php根据年月获取季度的方法
2014/03/31 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
js格式化时间的方法
2015/12/18 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
python控制台显示时钟的示例
2014/02/24 Python
Python中的is和id用法分析
2015/01/26 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
numpy基础教程之np.linalg
2019/02/12 Python
pytorch构建多模型实例
2020/01/15 Python
Python实现井字棋小游戏
2020/03/09 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
工业设计专业个人求职信范文
2013/12/28 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
龙猫观后感
2015/06/09 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis