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语言生成水仙花数代码示例
Dec 18 Python
python中的字典操作及字典函数
Jan 03 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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实现通过ftp上传文件
2015/06/19 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
javascript 函数调用规则
2009/08/26 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python 列表list使用介绍
2014/11/30 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python实现批量下载文件
2015/05/17 Python
python模拟事件触发机制详解
2018/01/19 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python Subprocess模块原理及实例
2019/08/26 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
业务经理岗位职责
2013/11/11 职场文书
个人自我剖析材料
2014/02/07 职场文书
优秀部门获奖感言
2014/02/14 职场文书
高中军训感言600字
2014/03/11 职场文书
党建工作先进材料
2014/05/02 职场文书
机电系毕业生求职信
2014/07/11 职场文书
新党章心得体会
2014/09/04 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS