https://blog.csdn.net/qq_36867011/article/details/86533326
第一种: #================================================================= #先等待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 = 1 for i in range(1,100000): p = p * i return 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 time def 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 time def 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)
