python定时执行方法
1 time.sleep
import time
for i in range(5):
print(i)
time.sleep(10)
2 用shed
import time
import sched schedule = sched.scheduler ( time.time, time.sleep ) def func(string1,float1):
print("now is",time.time()," | output=",string1,float1) print(time.time())
schedule.enter(2,0,func,("test1",time.time()))
schedule.enter(2,0,func,("test1",time.time()))
schedule.enter(3,0,func,("test1",time.time()))
schedule.enter(4,0,func,("test1",time.time()))
schedule.run()
print(time.time())
其中func中放要执行的函数,用schedule.enter加入要执行的函数,里面的第一个参数是延迟执行的时间,用sched.scheduler进行初始化
1512033155.9311035
now is 1512033157.9316308 | output= test1 1512033155.9311035
now is 1512033157.9316308 | output= test1 1512033155.9311035
now is 1512033158.9322016 | output= test1 1512033155.9311035
now is 1512033159.9316351 | output= test1 1512033155.9311035
1512033159.9316351
[Finished in 4.2s]
上面是执行结果,缺点是任务队列是阻塞型,即schedule里的任务不执行完,后面的主线程就不会执行
3 用threading里的timer,实现非阻塞型,即主线程要任务同时执行
import time
from threading import Timer def print_time( enter_time ):
print "now is", time.time() , "enter_the_box_time is", enter_time print time.time()
Timer(5, print_time, ( time.time(), )).start()
Timer(10, print_time, ( time.time(), )).start()
print time.time()
执行结果:
1512034286.9443169
1512034286.9452875
now is 1512034291.9460146 enter_the_box_time is 1512034286.9443169
now is 1512034296.9461012 enter_the_box_time is 1512034286.9452875
[Finished in 10.2s]
可看出任务和主线程是同步执行,但是后3位又稍有不同,应该是python的多线程并非真正的多线程导致
每天某个时间定时执行任务:
import datetime
import time def doSth():
print('test')
# 假装做这件事情需要一分钟
time.sleep(60) def main(h=0, m=0):
'''h表示设定的小时,m为设定的分钟'''
while True:
# 判断是否达到设定时间,例如0:00
while True:
now = datetime.datetime.now()
# 到达设定时间,结束内循环
if now.hour==h and now.minute==m:
break
# 不到时间就等20秒之后再次检测
time.sleep(20)
# 做正事,一天做一次
doSth() main()
4 linux用 crontab
python定时执行方法的更多相关文章
- python定时执行详解
知识点 1. sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度. (1)生成调度器:s = sched.scheduler(time.time,time ...
- 使用Python定时执行一任务,自动登录某web系统,生成报表,然后发送邮件给指定人员
一.项目需求 每周从A系统生成一张Excel报表,发送此报表给指定人员,相关人员依据此报表去完成后续的工作. 项目限制: 1.无法通过EDI系统交互的方式从后台读取数据 2.由于公司网络环境限制,不能 ...
- C# 定时执行方法: System.Timers.Timer用法示例
System.Timers.Timer t = new System.Timers.Timer(5000); //设置时间间隔为5秒 private void Form1_Load(ob ...
- Python定时执行脚本
最近测试hbase,老发现服务挂掉,自己不能及时发现,想了想,写了个脚本,让脚本每个小时执行一次,以便检测是否有服务挂掉,如果有服务挂掉,及时启动 import os import datetime ...
- Python开发的3种命令执行方法
在python开发中,我们常常需要执行命令,修改相关信息.那对于初学者来说,python中如何执行命令呢?今天,小编就为大家分享3种python命令执行的方法. 1. 使用os.system(&quo ...
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- Windows系统中设置Python程序定时运行方法
Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...
- Linux 下用 crontab 设置定时执行python 程序
Linux 下用 crontab 设置定时执行python 程序 方法/步骤 1,先大概了解crontab,/etc/crontab 就是crontab 的配置文件. crontab命令详解可以查 ...
随机推荐
- ArcGIS 创建要素时提示“表已经被注册(table already registered)”
今天一位实施大哥在ArcCatalog中要重建一个要素类,所以就在ArcCatalog中连接上Oracle数据库,直接删除了要素类,然后重新创建了一个新的要素类,可是却报错“表已经被创建”,并提示不可 ...
- 【bzoj4378】[POI2015]Logistyka 离散化+树状数组
题目描述 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作.每次 ...
- GYM - 101147 K.Touristic Trip
题意: 一个人从城市0开始旅行.一共有N座城市,他每到一座城市都会寄一张明信片.给出从一座城市到另一座城市的概率和在每座城市寄出每张明信片的概率.给出长度为k的寄明信片的序列.问在该序列的条件下在第Z ...
- 《c程序设计语言》-3.1 判断语句多少影响时间
#include <stdio.h> #define Num 1000000 /* int binsearch(int x,int v[],int n) { int low,high,mi ...
- code forces 996BWorld Cup
B. World Cup time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- win7用户账户自动登录方法
为了计算机安全,相信使用Windows7系统的朋友大多都为自己的用户账户设置了或简单或复杂的密码,其实对于个人电脑来说,开机登录输入密码有时候会显得累赘,毕竟用户账户密码不仅仅是为了防止他人登录. 那 ...
- hdu 6114 百度之星复赛B T1
Chess Problem Description 車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋子阻隔的棋子. 一天,小度在棋盘上摆起了许多車……他想知道,在一共N×M个点的矩形棋盘中 ...
- Java中的抽象和封装
一.面向对象和面向过程的区别 面向对象: 核心:封装了属性和方法的类,以数据为中心,实现了类级别的代码重用 面向对象因为采用了类,所以具有继承和多态特性,可以进一步重用代码和简化编程 面向过程: 核心 ...
- 厌倦了ListBox打印消息,使用RichTextBox试试吧
背景 Winform打印后台线程运行时消息,习惯用ListBox,有时候某行消息过长,设置个Tooltip控件提示全部信息.后来无意中看到同事使用RichTextBox打印消息,然后在不同的消息类别上 ...
- opengl glEnableClientState() 和 glDisableClientState() 作用
http://zhidao.baidu.com/link?url=c3m55lgpjhU1Rb7TEP-aTGQAX3-GrcBk5NaUC2UA1ZtQiCCtHJzB_KoG7pWvPEybfYv ...