Python實現(xiàn)定時任務(wù)
Python下實現(xiàn)定時任務(wù)的方式有很多種方式。下面介紹幾種
循環(huán)sleep:
這是一種最簡單的方式,在循環(huán)里放入要執(zhí)行的任務(wù),然后sleep一段時間再執(zhí)行。缺點是,不容易控制,而且sleep是個阻塞函數(shù)。
def timer(n): ''''' 每n秒執(zhí)行一次 ''' while True: print time.strftime('%Y-%m-%d %X',time.localtime()) yourTask() # 此處為要執(zhí)行的任務(wù) time.sleep(n)
threading的Timer:
threading模塊中的Timer能夠幫助實現(xiàn)定時任務(wù),而且是非阻塞的。
比如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是一種調(diào)度(延時處理機制)。
# -*- coding:utf-8 -*- # use sched to timing import time import os import sched # 初始化sched模塊的scheduler類 # 第一個參數(shù)是一個可以返回時間戳的函數(shù),第二個參數(shù)可以在定時未到達(dá)之前阻塞。 schedule = sched.scheduler(time.time, time.sleep) # 被周期性調(diào)度觸發(fā)的函數(shù) def execute_command(cmd, inc): ''''' 終端上顯示當(dāng)前計算機的連接情況 ''' os.system(cmd) schedule.enter(inc, 0, execute_command, (cmd, inc)) def main(cmd, inc=60): # enter四個參數(shù)分別為:間隔事件、優(yōu)先級(用于同時間到達(dá)的兩個事件同時執(zhí)行時定序)、被調(diào)用觸發(fā)的函數(shù), # 給該觸發(fā)函數(shù)的參數(shù)(tuple形式) schedule.enter(0, 0, execute_command, (cmd, inc)) schedule.run() # 每60秒查看下網(wǎng)絡(luò)連接情況 if __name__ == '__main__': main("netstat -an", 60)
使用定時框架APScheduler:
APScheduler是基于Quartz的一個Python定時任務(wù)框架。提供了基于日期、固定時間間隔以及crontab類型的任務(wù),并且可以持久化任務(wù)。
這個現(xiàn)在還沒自己嘗試過,等過段時間用了再來補充。
使用windows的定時任務(wù):
這里可以將所需要的Python程序打包成exe文件,然后在windows下設(shè)置定時執(zhí)行。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換
這篇文章主要為大家介紹了python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06python中執(zhí)行shell命令的幾個方法小結(jié)
這篇文章主要介紹了python中執(zhí)行shell命令的幾個方法,本文一共給出3種方法實現(xiàn)執(zhí)行shell命令,需要的朋友可以參考下2014-09-09Pandas 稀疏數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)
如果數(shù)據(jù)中有很多NaN的值,存儲起來就會浪費空間。為了解決這個問題,Pandas引入了一種叫做Sparse data的結(jié)構(gòu),來有效的存儲這些NaN的值,本文就來詳細(xì)的介紹了一下,感興趣的可以了解一下2021-07-07jupyter 中文亂碼設(shè)置編碼格式 避免控制臺輸出的解決
這篇文章主要介紹了jupyter 中文亂碼設(shè)置編碼格式 避免控制臺輸出的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04