close

【apscheduler】Python 程式排程必學(一):真正達到全自動化目標!快速入門篇

一、前言

這篇的目的很簡單,讓你一秒快速學會定時啟動你的程式讓他自動運作。詳細的內容及參數之後再介紹,趕快複製程式碼去運用吧!

還不知道怎麼學python或基礎不穩的可以看:Python學習地圖總覽:課程分類 專案分類 問題解決

 

二、3分鐘學會排程

(一) 安裝

pip install apscheduler

還不會 pip安裝的可以看:【python基礎】pip安裝python套件包(package)的三大方法

 

(二) 快速入門之操作步驟

這個套件包非常好用,也非常好懂,遵循下面幾大步驟即可:

1. 定義你要被排程的程式或方法

2. 建立物件(apscheduler有非常多排程器,這邊舉BackgroundScheduler為例):因為可以在後台執行不影響其他操作

3. 開始操作排程器(加入、開始、暫停、恢復、結束、移除)

import datetime
from apscheduler.schedulers.background import BackgroundScheduler

# ------------------------------------------------------------- # 
# 步驟一:先定義你要排成的方法(函數)
# ------------------------------------------------------------- # 
def my_job():
    print('Time:' + str(datetime.datetime.now()))


# ------------------------------------------------------------- # 
# 步驟二:建立BackgroundScheduler物件
# ------------------------------------------------------------- # 
sched = BackgroundScheduler() # 背景執行之排程


# ------------------------------------------------------------- # 
# 步驟三:基本操作
# ------------------------------------------------------------- # 
sched.add_job(my_job, 'interval', seconds=1, id='my_job_id') # 每1秒執行1次 參數interval為間隔的意思

sched.get_jobs() # 獲取列表

sched.start() # 開始

sched.pause() # 暫停工作

sched.resume() # 恢復工作

sched.shutdown(wait=True) # 結束 不想等馬上結束用False

sched.remove_all_jobs() # 暫停並移除所有工作


# ------------------------------------------------------------- # 
# 對指定工作操作
# ------------------------------------------------------------- # 
sched.pause_job('my_job_id') # 暫停指定工作

sched.resume_job('my_job_id') # 恢復指定工作

sched.remove_job('my_job_id') # 暫停並移除指定工作

 

(三) 較複雜的排程

這一句話可以解釋成:執行<my_job><在每週一到五> 中每天的 <0-23點><每分鐘><每4秒執行一次> ,並把工作叫做my_job_id

sched.add_job(my_job, 'cron', day_of_week='mon-fri', hour='0-23', minute='*', second='*/4', id='my_job_id')

sched.start()

 

三、後記

之後再帶來更多apscheduler的運用及詳細解說吧!因為apscheduler還有更多進階的操作方式。

還不知道怎麼學python或基礎不穩的可以看:Python學習地圖總覽:課程分類 專案分類 問題解決

arrow
arrow

    恩哥Python 發表在 痞客邦 留言(0) 人氣()