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查看多台服务器进程的脚本分享
Jun 11 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
Python中偏函数用法示例
Jun 07 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
Python函数基本使用原理详解
Mar 19 Python
解决paramiko执行命令超时的问题
Apr 16 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Python使用eval函数执行动态标表达式过程详解
Oct 17 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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程序的php代码
2008/04/07 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP内置加密函数详解
2016/11/20 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
详细解析Python当中的数据类型和变量
2015/04/25 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
学python最电脑配置有要求么
2020/07/05 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
初中生自我评价
2014/02/01 职场文书
模范班主任事迹材料
2014/12/17 职场文书
小学生学习保证书
2015/02/26 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js