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的urllib模块显示下载进度示例
Jan 17 Python
详解Python中的序列化与反序列化的使用
Jun 30 Python
python实现简单socket通信的方法
Apr 19 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python生成随机密码的方法
Jun 16 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
基于python绘制科赫雪花
Jun 22 Python
python简单贪吃蛇开发
Jan 28 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python基于TCP实现的文件下载器功能案例
Dec 10 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
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
php服务器的系统详解
2019/10/12 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
详解python读取和输出到txt
2019/03/29 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
2013年保送生自荐信格式
2013/11/20 职场文书
公司活动策划方案
2014/01/13 职场文书
优良学风班申请材料
2014/02/13 职场文书
工作过失检讨书
2014/02/23 职场文书
设计师求职信模板
2014/05/06 职场文书
成立公司计划书
2014/05/07 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
python装饰器代码解析
2022/03/23 Python