python 时间控制的几种方式
第一种:
#=================================================================
#先等待10分钟后再执行,每1小时后执行一次
##=================================================================
import threading
def printHello():print("运行程序")timer = threading.Timer(3600, printHello) #每小时=3600秒timer.start()print("运行程序2")
#
if __name__ == "__main__":timer = threading.Timer(6, printHello) #10分钟=600秒,表示10分钟后启动一个线程运行本程序timer.start()
第二种:#===================================================================
#每隔60秒运行一次
#===================================================================
import time,os
def re_exe(inc = 60): #缺省时间为60秒while True:print('运行时间')time.sleep(inc)
re_exe(60)
第三种#==================================================================
#周期性任务,
#==================================================================
import sched,time,os
schedule = sched.scheduler(time.time,time.sleep)
def perform_command(cmd,inc):#在inc秒后再次运行自己,即周期运行schedule.enter(inc, 0, perform_command, (cmd, inc))os.system(cmd)
def timming_exe(cmd,inc=60):schedule.enter(inc,0,perform_command,(cmd,inc))schedule.run()#持续运行,直到计划时间队列变成空为止
print('show time after 2 seconds:')
timming_exe('echo %time%',2)
第四种:
计算某程序的执行时间,测试时经常用到。import time
def func():p = 1for i in range(1,100000):p = p * ireturn p
startTime = time.time()
result = func()
endTime = time.time()
print('The result is %s digit long.'%(len(str(result))))
print('运行时间为%s秒'%(endTime - startTime))
第五种:每天如何定时启动爬虫任务import datetime
import timedef doSth():# 把爬虫程序放在这个类里print(u'这个程序要开始疯狂的运转啦')# 一般网站都是1:00点更新数据,所以每天凌晨一点启动
def main(h=1,m=0):while True:now = datetime.datetime.now()# print(now.hour, now.minute)if now.hour == h and now.minute == m:doSth()# 每隔60秒检测一次time.sleep(60)
第六种:
# #======================================
# 简单实用的定时任务
# #======================================
import schedule
import timedef job(name='ssss'):print("I'm working...",name)
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).days.do(job)
schedule.every().monday.do(job)
schedule.every().friday.at("02:45").do(job,'name')
while True:schedule.run_pending()time.sleep(1)
第七种:利用sched模块解决时间循环控制问题:# ! /usr/bin/env python
# coding=utf-8
import time, os, scheddef timming_exe(cmd, inc=60):try:# 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数# 第二个参数以某种人为的方式衡量时间schedule = sched.scheduler(time.time, time.sleep)# 安排inc秒后再次运行自己,即周期运行schedule.enter(inc, 0, timming_exe, (cmd, inc))os.system(cmd)schedule.run()finally:returntimming_exe("echo %time%", 10)
第八种:优秀的时间并发控制import datetime
import schedule
import threading
import timedef job1():print("I'm working for job1")time.sleep(2)print("job1:", datetime.datetime.now())def job2():print("I'm working for job2")time.sleep(2)print("job2:", datetime.datetime.now())def job1_task():sjob1 = threading.Thread(target=job1)sjob1.start()sjob1.join()def job2_task():sjob2 =threading.Thread(target=job2)sjob2.start()sjob2.join()schedule.every(1).seconds.do(job1_task)
schedule.every(1).seconds.do(job2_task)
while True:schedule.run_pending()time.sleep(1)
python 时间控制的几种方式相关推荐
- Python 打开网页的几种方式
Python打开网页的几种方式 方法1:直接调用系统命令 os #导入包 import os #执行包命令 os.system('"C:/Users/Public/AppData/Local ...
- redistemplate hash 过期时间_完美!谈谈Java中时间控制的几种解决方案
前言 需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失效.后台有定时任务在获取,但是偶尔会出现token失效,这是因为在获取的时候,定时任务正在跑,可 ...
- python 下载文件-Python下载文件的11种方式
原标题:Python下载文件的11种方式 在本教程中,你将学习如何使用不同的Python模块从web下载文件.此外,你将下载常规文件.web页面.Amazon S3和其他资源. 最后,你将学习如何克服 ...
- Python实现屏幕截图的两种方式
Python实现屏幕截图的两种方式 使用windows API 使用PIL中的ImageGrab模块 下面对两者的特点和用法进行详细解释. 一.Python调用windows API实现屏幕截图 好处 ...
- Python拼接字符串的七种方式
♚ 豌豆花下猫,某985高校毕业生, 兼具极客思维与人文情怀 .公众号Python猫, 专注python技术.数据科学和深度学习,力图创造一个有趣又有用的学习分享平台. 忘了在哪看到一位编程大牛调侃, ...
- Python读取/保存图片的3种方式(PIL、matplotlib、cv2)
文章目录 Python读取/保存图片的3种方式 PIL方式 matplotlib方式 OpenCV方式 总结: Python读取/保存图片的3种方式 PIL方式 from PIL import Ima ...
- Python 发送 email 的三种方式
Python发送email的三种方式,分别为使用登录邮件服务器.使用smtp服务.调用sendmail命令来发送三种方法 本文原文自米扑博客:Python 发送 email 的三种方式 Python发 ...
- Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码
Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo
- Python 操作 MySQL 的5种方式(转)
Python 操作 MySQL 的5种方式 不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pytho ...
最新文章
- 生成器模式(Builder)解析例子
- 为什么说BCH是最安全的数字货币之一?
- Cpp 对象模型探索 / operator new、operator delete、operator new[] 和 operator delete [] 重载
- 玩转oracle 11g(26):误删表数据和误删表回滚
- 第五章 计算机故障诊断与排除
- 易语言客户端请求http_HTTP的重点问题
- 难得一见的DIY针孔相机
- WIN10使用 NetSpeedMonitor
- 【Auto.JS】入门宝典—Auto.JS开发使用笔记(随笔和使用心得)
- 格雷码转换成二进制c语言程序,基于PLC程序实现格雷码转换成二进制码.pdf
- 国内液压与气动标准大全
- js使用canvas画布画太极图案
- 诛仙2怎样修改服务器时间,《诛仙2》3月2日服务器数据互通公告
- hdu 6357 Hills And Valleys——dp
- 34.UCASE() LCASE() 函数
- android和ios手机换行,ios label中文与数字混合导致换行解决
- STC8单片机ADC采样注意事项
- 微信支付~微信手机网站支付(mweb)
- IGBT体二极管参数
- i.MX6 ARM工控板 开发设计
热门文章
- 设置高度等于动态宽度(CSS方法)
- 二叉树算法解题思路总结(一)
- js判断数据类型常用的四种方法
- vanilla_使用Vanilla JavaScript构建Cookie库
- Dracula这个东西
- 阿里大鱼短信发送接口开发
- linux中的lnk格式,ink文件扩展名,ink文件怎么打开?
- portalv15安装 tia_安装了TIA Portal V15.1软件,所有程序里有TIAV15.1图标,怎么桌面上没有TIA V15.1的图标?-工业支持中心-西门子中国...
- 游戏思考15:全区全服和分区分服的思考
- 天堂向左,深圳往右 第十三章第十四章