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

python定時任務(wù)schedule庫用法詳細講解

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

前言

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

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

首先安裝schedule庫:

pip install schedule

1、按時間間隔執(zhí)行定時任務(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)建一個按3秒間隔執(zhí)行任務(wù)
    schedule.every(3).seconds.do(task)
    # 創(chuàng)建一個按2秒間隔執(zhí)行任務(wù)
    schedule.every(2).seconds.do(task2)
    while True:
        schedule.run_pending()
 
func()

運行結(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ù)
  • 每隔一小時執(zhí)行一次任務(wù)
  • 每天的10:30執(zhí)行一次任務(wù)
  • 每隔5到10天執(zhí)行一次任務(wù) 
  • 每周一的這個時候執(zhí)行一次任務(wù)
  • 每周三13:15執(zhí)行一次任務(wù)
  • run_pending:運行所有可以運行的任務(wù)

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

2、裝飾器:通過 @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()

運行結(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()

運行結(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()

運行結(jié)果:

5、取消定時任務(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()

運行結(jié)果:

6、在指定時間執(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)

運行結(jié)果:

7、根據(jù)標簽檢索任務(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)

運行結(jié)果:

8、根據(jù)標簽取消任務(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()

運行結(jié)果:

9、運行任務(wù)到某時間

示例代碼:

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小時后停止
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()

運行結(jié)果:

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

示例代碼:

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秒

運行結(jié)果:

11、并行運行:使用 Python 內(nèi)置隊列實現(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)

運行結(jié)果:

總結(jié)

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

相關(guān)文章

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

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

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

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

    跨平臺的pywifi模塊支持操作無線網(wǎng)卡,該模塊易于使用,同時支持Windows、Linux等多個系統(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)境以及遠程桌面連接和配置(作為臨時方案),通過這些方法,可以有效地解決環(huán)境搭建和依賴安裝問題
    2025-02-02
  • 基于Python實現(xiàn)五子棋-(人機對戰(zhàn))

    基于Python實現(xiàn)五子棋-(人機對戰(zhàn))

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

    python抓取百度首頁的方法

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

    Python如何操作office實現(xiàn)自動化及win32com.client的運用

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

    Python3中的指針你了解嗎

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

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

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

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

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

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

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

最新評論

佳木斯市| 通渭县| 达日县| 寿宁县| 雅安市| 屯门区| 抚松县| 锡林郭勒盟| 阿克| 房山区| 临夏县| 双柏县| 廉江市| 黄石市| 松滋市| 广德县| 泽州县| 黎平县| 高青县| 汶上县| 灵武市| 平邑县| 彩票| 兴义市| 濉溪县| 错那县| 绥芬河市| 民丰县| 桦川县| 东兴市| 军事| 朝阳市| 荆门市| 龙陵县| 石楼县| 嘉祥县| 兴业县| 丹凤县| 微博| 闽侯县| 蓬莱市|