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 18 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
python实现操作文件(文件夹)
Oct 31 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
Django返回HTML文件的实现方法
Sep 17 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
Python机器学习之基于Pytorch实现猫狗分类
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
用PHP编写PDF文档生成器
2006/10/09 PHP
PHP函数utf8转gb2312编码
2006/12/21 PHP
linux下编译安装memcached服务
2014/08/03 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python正则表达式如何匹配中文
2020/05/27 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
应届生人事助理求职信
2013/11/09 职场文书
模特大赛策划方案
2014/05/28 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
mysql 排序失效
2022/05/20 MySQL