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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
python复制文件到指定目录的实例
Apr 27 Python
Python中文件的读取和写入操作
Apr 27 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
python3实现高效的端口扫描
Aug 31 Python
pytorch之inception_v3的实现案例
Jan 06 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python源文件的字符编码知识点详解
Mar 04 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编程中八种常见的文件操作方式
2006/11/19 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
php的debug相关函数用法示例
2016/07/11 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
python操作MongoDB基础知识
2013/11/01 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
python和php学习哪个更有发展
2020/06/17 Python
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
小学教师管理制度
2014/01/18 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
服务标语口号
2014/07/01 职场文书
2015年派出所工作总结
2015/04/24 职场文书
三好学生竞选稿
2015/11/21 职场文书
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android