最近在做項(xiàng)目的時(shí)候經(jīng)常會(huì)用到定時(shí)任務(wù),由于我的項(xiàng)目是使用Java來(lái)開(kāi)發(fā),用的是SpringBoot框架,因此要實(shí)現(xiàn)這個(gè)定時(shí)任務(wù)其實(shí)并不難。
后來(lái)我在想如果我要在Python中實(shí)現(xiàn),我要怎么做呢?
一開(kāi)始我首先想到的是Timer
Timer
這個(gè)是一個(gè)擴(kuò)展自threading模塊來(lái)實(shí)現(xiàn)的定時(shí)任務(wù)。它其實(shí)是一個(gè)線(xiàn)程。
# 首先定義一個(gè)需要定時(shí)執(zhí)行的方法
>>> def hello():
print("hello!")
# 導(dǎo)入threading,并創(chuàng)建Timer,設(shè)置1秒后執(zhí)行hello方法
>>> import threading
>>> timer = threading.Timer(1,hello)
>>> timer.start()
# 1秒后打印
>>> hello!
這個(gè)內(nèi)置的工具使用起來(lái)也簡(jiǎn)單,對(duì)于熟悉Java的同學(xué)來(lái)說(shuō)也是非常容易的。然而我一直能否有一個(gè)更加Pythonic的工具或者類(lèi)庫(kù)呢?
這時(shí)我看到一篇文章介紹Scheduler類(lèi)庫(kù)的使用,突然覺(jué)得這就是我想要的
Scheduler
要使用這個(gè)庫(kù)先使用以下命令進(jìn)行安裝
pip install schedule
schedule模塊中的方法可讀性非常好,而且支持鏈?zhǔn)秸{(diào)用
import schedule
# 定義需要執(zhí)行的方法
def job():
print("a simple scheduler in python.")
# 設(shè)置調(diào)度的參數(shù),這里是每2秒執(zhí)行一次
schedule.every(2).seconds.do(job)
if __name__ == '__main__':
while True:
schedule.run_pending()
# 執(zhí)行結(jié)果
a simple scheduler in python.
a simple scheduler in python.
a simple scheduler in python.
...
其它設(shè)置調(diào)度參數(shù)的方法
# 每小時(shí)執(zhí)行
schedule.every().hour.do(job)
# 每天12:25執(zhí)行
schedule.every().day.at("12:25").do(job)
# 每2到5分鐘時(shí)執(zhí)行
schedule.every(5).to(10).minutes.do(job)
# 每星期4的19:15執(zhí)行
schedule.every().thursday.at("19:15").do(job)
# 每第17分鐘時(shí)就執(zhí)行
schedule.every().minute.at(":17").do(job)
如果要執(zhí)行的方法需要參數(shù)呢?
# 需要執(zhí)行的方法需要傳參
def job(val):
print(f'hello {val}')
# schedule.every(2).seconds.do(job)
# 使用帶參數(shù)的do方法
schedule.every(2).seconds.do(job, "hylinux")
# 執(zhí)行結(jié)果
hello hylinux
hello hylinux
hello hylinux
hello hylinux
hello hylinux
hello hylinux
...
是不是很簡(jiǎn)單?
學(xué)習(xí)資料
https://bhupeshv.me/A-Simple-Scheduler-in-Python/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

