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中实现对list做减法操作介绍
Jan 09 Python
python微信公众号之关键词自动回复
Jun 15 Python
python实现Windows电脑定时关机
Jun 20 Python
Python实现识别图片内容的方法分析
Jul 11 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
Python列表list操作相关知识小结
Jan 29 Python
Python中logger日志模块详解
Aug 04 Python
详解python对象之间的交互
Sep 29 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
pytorch 实现变分自动编码器的操作
May 24 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 文本文件的读取效率
2012/02/10 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
php常用字符函数实例小结
2016/12/29 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python批量提取word内信息
2015/08/09 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
详解Python中where()函数的用法
2018/03/27 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
婚庆司仪主持词
2014/03/15 职场文书
父母对孩子的寄语
2014/04/09 职场文书
个人优缺点总结
2015/02/28 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
企业宣传稿范文
2015/07/23 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书