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

python定時(shí)任務(wù)schedule庫(kù)用法詳細(xì)講解

 更新時(shí)間:2023年01月11日 11:01:09   作者:IT之一小佬  
python中有一個(gè)輕量級(jí)的定時(shí)任務(wù)調(diào)度的庫(kù)schedule,下面這篇文章主要給大家介紹了關(guān)于python定時(shí)任務(wù)schedule庫(kù)用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

schedule是一個(gè)第三方輕量級(jí)的任務(wù)調(diào)度模塊,可以按照秒,分,小時(shí),日期或者自定義事件執(zhí)行時(shí)間。

如果想執(zhí)行多個(gè)任務(wù),也可以添加多個(gè)task。

首先安裝schedule庫(kù):

pip install schedule

1、按時(shí)間間隔執(zhí)行定時(shí)任務(wù)

示例代碼1:

import schedule
from datetime import datetime
 
def task():
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts)
 
def task2():
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + '666!')
 
def func():
    # 清空任務(wù)
    schedule.clear()
    # 創(chuàng)建一個(gè)按3秒間隔執(zhí)行任務(wù)
    schedule.every(3).seconds.do(task)
    # 創(chuàng)建一個(gè)按2秒間隔執(zhí)行任務(wù)
    schedule.every(2).seconds.do(task2)
    while True:
        schedule.run_pending()
 
func()

運(yùn)行結(jié)果:

示例代碼2:

import schedule
import time
 
def job(name):
    print("her name is : ", name)
 
name = "張三"
schedule.every(10).minutes.do(job, name)
schedule.every().hour.do(job, name)
schedule.every().day.at("10:30").do(job, name)
schedule.every(5).to(10).days.do(job, name)
schedule.every().monday.do(job, name)
schedule.every().wednesday.at("13:15").do(job, name)
 
while True:
    schedule.run_pending()
    time.sleep(1)

參數(shù)解釋:

  • 每隔十分鐘執(zhí)行一次任務(wù)
  • 每隔一小時(shí)執(zhí)行一次任務(wù)
  • 每天的10:30執(zhí)行一次任務(wù)
  • 每隔5到10天執(zhí)行一次任務(wù) 
  • 每周一的這個(gè)時(shí)候執(zhí)行一次任務(wù)
  • 每周三13:15執(zhí)行一次任務(wù)
  • run_pending:運(yùn)行所有可以運(yùn)行的任務(wù)

 注意:schedule方法是串行的,也就是說(shuō),如果各個(gè)任務(wù)之間時(shí)間不沖突,那是沒(méi)問(wèn)題的;如果時(shí)間有沖突的話,會(huì)串行的執(zhí)行命令。

2、裝飾器:通過(guò) @repeat() 裝飾靜態(tài)方法

示例代碼:

from datetime import datetime
from schedule import every, repeat, run_pending
 
@repeat(every(3).seconds)
def task():
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + '-333!')
 
@repeat(every(5).seconds)
def task2():
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + "-555555!")
 
while True:
    run_pending()

運(yùn)行結(jié)果:

3、傳遞參數(shù)

示例代碼:

from datetime import datetime
import schedule
 
def task(s):
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + s)
 
def task2(s):
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + s)
 
schedule.every(3).seconds.do(task, s='-333')
schedule.every(5).seconds.do(task, s='-555')
while True:
    schedule.run_pending()

運(yùn)行結(jié)果:

4、使用裝飾器傳遞參數(shù)

示例代碼:

from datetime import datetime
from schedule import every, repeat, run_pending
 
@repeat(every(3).seconds, '-333')
def task(s):
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + s)
 
@repeat(every(5).seconds, '-555')
def task2(s):
    now = datetime.now()
    ts = now.strftime("%Y-%m-%d %H:%M:%S")
    print(ts + s)
 
while True:
    run_pending()

運(yùn)行結(jié)果:

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

示例代碼: 

import schedule
 
i = 0
 
def some_task():
    global i
    i += 1
    print(i)
    if i == 5:
        schedule.cancel_job(job)
        print('cancel job')
        exit(0)
 
job = schedule.every().second.do(some_task)
while True:
    schedule.run_pending()

運(yùn)行結(jié)果:

6、在指定時(shí)間執(zhí)行一次任務(wù)

示例代碼:

import time
import schedule
 
def job_that_executes_once():
    print('Hello')
    return schedule.CancelJob
 
schedule.every().minute.at(':30').do(job_that_executes_once)
while True:
    schedule.run_pending()
    time.sleep(1)

運(yùn)行結(jié)果:

7、根據(jù)標(biāo)簽檢索任務(wù)

示例代碼:

# 檢索所有任務(wù):schedule.get_jobs()
import schedule
 
def greet(name):
    print('Hello {}'.format(name))
 
schedule.every().day.do(greet, 'Andrea').tag('daily-tasks', 'friend')
schedule.every().hour.do(greet, 'John').tag('hourly-tasks', 'friend')
schedule.every().hour.do(greet, 'Monica').tag('hourly-tasks', 'customer')
schedule.every().day.do(greet, 'Derek').tag('daily-tasks', 'guest')
friends = schedule.get_jobs('friend')
print(friends)

運(yùn)行結(jié)果:

8、根據(jù)標(biāo)簽取消任務(wù)

示例代碼:

# 取消所有任務(wù):schedule.clear()
import schedule
 
def greet(name):
    print('Hello {}'.format(name))
    if name == 'Cancel':
        schedule.clear('second-tasks')
        print('cancel second-tasks')
 
schedule.every().second.do(greet, 'Andrea').tag('second-tasks', 'friend')
schedule.every().second.do(greet, 'John').tag('second-tasks', 'friend')
schedule.every().hour.do(greet, 'Monica').tag('hourly-tasks', 'customer')
schedule.every(5).seconds.do(greet, 'Cancel').tag('daily-tasks', 'guest')
while True:
    schedule.run_pending()

運(yùn)行結(jié)果:

9、運(yùn)行任務(wù)到某時(shí)間

示例代碼:

import schedule
from datetime import datetime, timedelta, time
 
def job():
    print('working...')
 
schedule.every().second.until('23:59').do(job)  # 今天23:59停止
schedule.every().second.until('2030-01-01 18:30').do(job)  # 2030-01-01 18:30停止
schedule.every().second.until(timedelta(hours=8)).do(job)  # 8小時(shí)后停止
schedule.every().second.until(time(23, 59, 59)).do(job)  # 今天23:59:59停止
schedule.every().second.until(datetime(2030, 1, 1, 18, 30, 0)).do(job)  # 2030-01-01 18:30停止
while True:
    schedule.run_pending()

運(yùn)行結(jié)果:

10、馬上運(yùn)行所有任務(wù)(主要用于測(cè)試)

示例代碼:

import schedule
 
def job():
    print('working...')
 
def job1():
    print('Hello...')
 
schedule.every().monday.at('12:40').do(job)
schedule.every().tuesday.at('16:40').do(job1)
schedule.run_all()
schedule.run_all(delay_seconds=3)  # 任務(wù)間延遲3秒

運(yùn)行結(jié)果:

11、并行運(yùn)行:使用 Python 內(nèi)置隊(duì)列實(shí)現(xiàn)

示例代碼: 

import threading
import time
import schedule
 
def job1():
    print("I'm running on thread %s" % threading.current_thread())
 
def job2():
    print("I'm running on thread %s" % threading.current_thread())
 
def job3():
    print("I'm running on thread %s" % threading.current_thread())
 
def run_threaded(job_func):
    job_thread = threading.Thread(target=job_func)
    job_thread.start()
 
schedule.every(10).seconds.do(run_threaded, job1)
schedule.every(10).seconds.do(run_threaded, job2)
schedule.every(10).seconds.do(run_threaded, job3)
while True:
    schedule.run_pending()
    time.sleep(1)

運(yùn)行結(jié)果:

總結(jié)

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

相關(guān)文章

  • Python三維網(wǎng)格體素化實(shí)例

    Python三維網(wǎng)格體素化實(shí)例

    這篇文章主要介紹了Python三維網(wǎng)格體素化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python中pywifi模塊的基本用法講解

    Python中pywifi模塊的基本用法講解

    跨平臺(tái)的pywifi模塊支持操作無(wú)線網(wǎng)卡,該模塊易于使用,同時(shí)支持Windows、Linux等多個(gè)系統(tǒng),這篇文章主要介紹了Python中pywifi模塊的基本用法,需要的朋友可以參考下
    2022-11-11
  • 在不同系統(tǒng)間遷移Python程序的方法與教程

    在不同系統(tǒng)間遷移Python程序的方法與教程

    本文介紹了幾種將Windows上編寫的Python程序遷移到Linux服務(wù)器上的方法,包括使用虛擬環(huán)境和依賴凍結(jié)、容器化技術(shù)(如Docker)、使用Anaconda環(huán)境以及遠(yuǎn)程桌面連接和配置(作為臨時(shí)方案),通過(guò)這些方法,可以有效地解決環(huán)境搭建和依賴安裝問(wèn)題
    2025-02-02
  • 基于Python實(shí)現(xiàn)五子棋-(人機(jī)對(duì)戰(zhàn))

    基于Python實(shí)現(xiàn)五子棋-(人機(jī)對(duì)戰(zhàn))

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)五子棋游戲(人機(jī)對(duì)戰(zhàn)版),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • python抓取百度首頁(yè)的方法

    python抓取百度首頁(yè)的方法

    這篇文章主要介紹了python抓取百度首頁(yè)的方法,涉及Python使用urllib模塊實(shí)現(xiàn)頁(yè)面抓取的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python如何操作office實(shí)現(xiàn)自動(dòng)化及win32com.client的運(yùn)用

    Python如何操作office實(shí)現(xiàn)自動(dòng)化及win32com.client的運(yùn)用

    這篇文章主要介紹了Python如何操作office實(shí)現(xiàn)自動(dòng)化及win32com.client的運(yùn)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python3中的指針你了解嗎

    Python3中的指針你了解嗎

    Python這個(gè)編程語(yǔ)言雖然沒(méi)有指針類型,但是Python中的可變參量也可以像指針一樣,改變一個(gè)數(shù)值之后,所有指向該數(shù)值的可變參量都會(huì)隨之而改變,這篇文章主要介紹了Python3中的“指針”,需要的朋友可以參考下
    2024-02-02
  • Python中print和return的作用及區(qū)別解析

    Python中print和return的作用及區(qū)別解析

    print的作用是輸出數(shù)據(jù)到控制端,就是打印在你能看到的界面上。這篇文章給大家介紹Python中print和return的作用及區(qū)別解析,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • python3實(shí)現(xiàn)網(wǎng)頁(yè)版raspberry pi(樹(shù)莓派)小車控制

    python3實(shí)現(xiàn)網(wǎng)頁(yè)版raspberry pi(樹(shù)莓派)小車控制

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)網(wǎng)頁(yè)版raspberry pi(樹(shù)莓派)小車控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • requests.post()方法中data和json參數(shù)的使用

    requests.post()方法中data和json參數(shù)的使用

    這篇文章主要介紹了requests.post()方法中data和json參數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論

邻水| 综艺| 托里县| 出国| 三亚市| 靖西县| 横峰县| 鹰潭市| 巴马| 乐安县| 高碑店市| 阿合奇县| 芜湖县| 德保县| 瓮安县| 贵德县| 翼城县| 同江市| 闽清县| 济宁市| 开阳县| 亚东县| 沽源县| 梅河口市| 潮安县| 炉霍县| 拉萨市| 汉阴县| 台北市| 高台县| 淳化县| 阿拉尔市| 金沙县| 剑阁县| 长垣县| 清流县| 兴和县| 陵川县| 石河子市| 荆门市| 武乡县|