最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中schedule模塊關(guān)于定時(shí)任務(wù)使用方法

 更新時(shí)間:2022年05月31日 09:27:52   作者:redrose2100  
這篇文章主要介紹了Python中schedule模塊關(guān)于定時(shí)任務(wù)使用方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1 取消定時(shí)任務(wù)

比如當(dāng)滿足一定條件時(shí),就取消定時(shí)任務(wù),在這種場(chǎng)景下,不可能說把進(jìn)程干掉,所以可以利用取消定時(shí)任務(wù)的功能

如下代碼,通過count控制當(dāng)執(zhí)行了5此以后,就取消定時(shí)任務(wù)

import schedule
import time
count=0
def do_func(name,age):
global count
count+=1
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))

def main():
job=schedule.every(2).seconds.do(do_func,"張三豐",100)
while True:
if count>=5:
schedule.cancel_job(job)
schedule.run_pending()

if __name__=="__main__":
main()

執(zhí)行結(jié)果如下,可以看到當(dāng)執(zhí)行完5此打印后,進(jìn)程并沒有退出,但是定時(shí)任務(wù)不再執(zhí)行了

2022-05-25 00:03:15 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:03:17 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:03:19 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:03:21 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:03:23 in do func : 姓名:張三豐 年齡:100

2 定時(shí)任務(wù)只執(zhí)行一次

定時(shí)任務(wù)執(zhí)行一次似乎是沒啥意義的,但是在某些場(chǎng)景下,比如執(zhí)行了一定次數(shù)后,當(dāng)滿足一定條件時(shí)只需要再執(zhí)行一次,這個(gè)時(shí)候就派上用場(chǎng)了

如下為單純的只執(zhí)行一次的定時(shí)任務(wù)

import time
def do_func(name,age):
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))
return schedule.CancelJob
def main():
schedule.every(2).seconds.do(do_func,"張三豐",100)
while True:
schedule.run_pending()

if __name__=="__main__":
main()

執(zhí)行結(jié)果如下,可以發(fā)現(xiàn),執(zhí)行完一次就不再執(zhí)行了

2022-05-25 00:14:20 in do func : 姓名:張三豐 年齡:100

執(zhí)行一次的定時(shí)任務(wù)的原理其實(shí)是在任務(wù)函數(shù)結(jié)尾返回了一個(gè)取消任務(wù)的消息,這里真正的價(jià)值在于將任務(wù)是否結(jié)束的決定權(quán)交給了任務(wù)函數(shù),即可以在任務(wù)函數(shù)中進(jìn)行條件判斷,當(dāng)達(dá)到一定的業(yè)務(wù)邏輯條件時(shí),可以返回取消定時(shí)任務(wù)的消息,這樣設(shè)置定時(shí)任務(wù)就更加靈活了

如下,可以在業(yè)務(wù)中判斷是否具備停下來的條件,當(dāng)條件滿足了就停下來不再執(zhí)行了

import schedule
import time
count=1
def do_func(name,age):
global count
count+=1
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))
if count >= 5:
print("已經(jīng)執(zhí)行5次了,達(dá)到預(yù)期結(jié)果了,不需要再執(zhí)行了...")
return schedule.CancelJob

def main():
schedule.every(2).seconds.do(do_func,"張三豐",100)
while True:
schedule.run_pending()

if __name__=="__main__":
main()

執(zhí)行結(jié)果如下:

2022-05-25 00:19:30 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:19:32 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:19:34 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:19:36 in do func : 姓名:張三豐 年齡:100

2022-05-25 00:19:38 in do func : 姓名:張三豐 年齡:100

已經(jīng)執(zhí)行5次了,達(dá)到預(yù)期結(jié)果了,不需要再執(zhí)行了...

3 獲取所有的定時(shí)任務(wù)

獲取所有的定時(shí)任務(wù)作用就是可以根據(jù)一定的條件,對(duì)某些滿足條件的定時(shí)任務(wù)進(jìn)行各種操作如修改等

如下代碼為對(duì)間隔3的任務(wù)從每3秒修改為每3分鐘

import schedule
import time
def do_func(name,age):
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))
def main():
schedule.every(2).seconds.do(do_func,"張三豐",100)
schedule.every(3).seconds.do(do_func, "張三豐", 200)
all_jobs=schedule.get_jobs()
print("原始定時(shí)任務(wù):")
for job in all_jobs:
print(job)
for job in all_jobs:
if job.interval ==3:
job.unit="minutes"
print("修改后的定時(shí)任務(wù):")
for job in all_jobs:
print(job)
if __name__=="__main__":
main()

執(zhí)行結(jié)果如下:

原始定時(shí)任務(wù):

Job(interval=2, unit=seconds, do=do_func, args=('張三豐', 100), kwargs={})

Job(interval=3, unit=seconds, do=do_func, args=('張三豐', 200), kwargs={})

修改后的定時(shí)任務(wù):

Job(interval=2, unit=seconds, do=do_func, args=('張三豐', 100), kwargs={})

Job(interval=3, unit=minutes, do=do_func, args=('張三豐', 200), kwargs={})

4 取消所有任務(wù)

如下為取消所有任務(wù)的代碼,取消之前顯示有兩個(gè)任務(wù),取消后顯示有0個(gè)定時(shí)任務(wù)

import schedule
import time
def do_func(name,age):
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))
def main():
schedule.every(2).seconds.do(do_func,"張三豐",100)
schedule.every(3).seconds.do(do_func, "張三豐", 200)
print(len(schedule.get_jobs()))
schedule.clear()
print(len(schedule.get_jobs()))
if __name__=="__main__":
main()

執(zhí)行結(jié)果為:

2

0

5 給定時(shí)任務(wù)打標(biāo)簽,同樣通過標(biāo)簽獲取或取消定時(shí)任務(wù)

如下代碼演示了給任務(wù)打標(biāo)簽,根據(jù)標(biāo)簽挑選任務(wù),根據(jù)標(biāo)簽清除任務(wù)等操作

import schedule
import time

def do_func(name,age):
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+" in do func : 姓名:"+name+" 年齡:"+str(age))
def main():
# 定義定時(shí)任務(wù)時(shí)直接打標(biāo)簽
schedule.every(2).seconds.do(do_func,"張三豐",100).tag("demo1","demo2")
schedule.every(3).seconds.do(do_func, "張三豐", 200).tag("demo2","demo3")
schedule.every(4).seconds.do(do_func, "張三豐", 300).tag("demo3", "demo4")
# 根據(jù)demo2標(biāo)簽選擇任務(wù)
demo2=schedule.get_jobs("demo2")
print("根據(jù)demo2標(biāo)簽挑選出的任務(wù)")
for job in demo2:
print(job)
# 根據(jù)標(biāo)簽取消定時(shí)任務(wù)
schedule.clear("demo3")
all_job=schedule.get_jobs()
print("刪除demo3標(biāo)簽的任務(wù)后,剩余的任務(wù)")
for job in all_job:
print(job)

if __name__=="__main__":
main()

執(zhí)行結(jié)果如下:

根據(jù)demo2標(biāo)簽挑選出的任務(wù)

Job(interval=2, unit=seconds, do=do_func, args=('張三豐', 100), kwargs={})

Job(interval=3, unit=seconds, do=do_func, args=('張三豐', 200), kwargs={})

刪除demo3標(biāo)簽的任務(wù)后,剩余的任務(wù)

Job(interval=2, unit=seconds, do=do_func, args=('張三豐', 100), kwargs={})

到此這篇關(guān)于Python中schedule模塊關(guān)于定時(shí)任務(wù)使用方法的文章就介紹到這了,更多相關(guān)Python schedule 模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入探究Python中的多進(jìn)程模塊用法實(shí)例

    深入探究Python中的多進(jìn)程模塊用法實(shí)例

    多進(jìn)程是計(jì)算機(jī)編程中的一個(gè)概念,也可以說是一種可用于實(shí)現(xiàn)并行性和利用多個(gè) CPU 內(nèi)核或處理器并發(fā)執(zhí)行任務(wù)的技術(shù),在本文中,我們將學(xué)習(xí)有關(guān) python 中多進(jìn)程處理的所有知識(shí)、理論和實(shí)際使用代碼
    2024-01-01
  • Python開發(fā)必須掌握的Pip使用全攻略

    Python開發(fā)必須掌握的Pip使用全攻略

    在這篇文章中,我們將深入探討Python的主要包管理工具——Pip,包括Pip的基本概念、安裝和配置、中國(guó)國(guó)內(nèi)鏡像源的使用等,需要的可以參考一下
    2023-07-07
  • ZABBIX3.2使用python腳本實(shí)現(xiàn)監(jiān)控報(bào)表的方法

    ZABBIX3.2使用python腳本實(shí)現(xiàn)監(jiān)控報(bào)表的方法

    今天小編就為大家分享一篇ZABBIX3.2使用python腳本實(shí)現(xiàn)監(jiān)控報(bào)表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python操作Excel的10個(gè)必學(xué)腳本分享

    Python操作Excel的10個(gè)必學(xué)腳本分享

    Excel表格操作是我們?nèi)粘9ぷ髦胁豢苫蛉钡囊徊糠?而Python憑借其強(qiáng)大的數(shù)據(jù)處理能力,可以極大地提升我們操作Excel的效率,本文將介紹10個(gè)必學(xué)的Python腳本,需要的可以零基礎(chǔ)
    2025-03-03
  • Django自帶的加密算法及加密模塊詳解

    Django自帶的加密算法及加密模塊詳解

    今天小編就為大家分享一篇Django自帶的加密算法及加密模塊詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中統(tǒng)計(jì)函數(shù)運(yùn)行耗時(shí)的方法

    Python中統(tǒng)計(jì)函數(shù)運(yùn)行耗時(shí)的方法

    這篇文章主要介紹了Python中統(tǒng)計(jì)函數(shù)運(yùn)行耗時(shí)的方法,涉及Python時(shí)間操作的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • Python可以用來做什么

    Python可以用來做什么

    在本篇文章里小編給大家整理的是一篇關(guān)于解惑Python可以用來做什么的基礎(chǔ)文章,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • python障礙式期權(quán)定價(jià)公式

    python障礙式期權(quán)定價(jià)公式

    這篇文章主要為大家詳細(xì)介紹了python障礙式期權(quán)定價(jià)公式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python字典底層實(shí)現(xiàn)原理詳解

    Python字典底層實(shí)現(xiàn)原理詳解

    今天小編就為大家分享一篇Python字典底層實(shí)現(xiàn)原理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python+wxPython實(shí)現(xiàn)文件內(nèi)容搜索工具

    Python+wxPython實(shí)現(xiàn)文件內(nèi)容搜索工具

    在本篇文章中,我們將介紹如何使用?wxPython?庫創(chuàng)建一個(gè)簡(jiǎn)單的文件搜索工具,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-08-08

最新評(píng)論

子长县| 台湾省| 读书| 行唐县| 神木县| 滕州市| 黄骅市| 北辰区| 怀化市| 顺义区| 瑞丽市| 斗六市| 滦平县| 宝坻区| 永宁县| 郓城县| 常德市| 湘潭县| 营山县| 微山县| 莲花县| 汶上县| 行唐县| 龙陵县| 崇阳县| 蓬安县| 北票市| 万源市| 利川市| 沙雅县| 博罗县| 宁波市| 无极县| 天长市| 鞍山市| 芦山县| 五原县| 河源市| 阳城县| 上虞市| 资阳市|