2021年12月30日 星期四

Python-apscheduler工作排程器

 參考Google搜尋到的資訊,了解apscheduler套件用法。

常用的排工作二種方式:

一、apscheduler.schedulers.blocking-只執行排程的工作。

二、apscheduler.schedulers.background-啟動排程工作後,繼續執行程式。


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime

#設定三個副程式。
def job_1(text):
print('job_1:',text)
def job_2(text):
print('job_2:',text)
def job_3(text):
print('job_3:', text)

#設定時區為UTC。
schedule = BlockingScheduler(timezone='Asia/Taipei')

#2022年1月1日執行
#使用'data'一次性時間。
schedule.add_job(job_1, 'date', run_date=datetime.datetime(2022,1,1), args=['Happy New Year'])
#使用'interval'間段執行,weeks、days、hours、minutes、seconds。
#開始時間start_date、結束時間end_date。
schedule.add_job(job_2, 'interval', seconds=0, start_date='2022-01-01 00:00:00', end_date='2022-01-01 00:00:00',args=['Happy New Year'])
#使用cron周期執行,year、month、day、hour、minute、second。
#’*'為每年、每月、每週、每日、每小時、每分鍾」每秒。例如:(second='*')
#‘*/a’為除進就執行。例如:(second='*/2')每二秒執行一次。
#’a-b'執行時間區間。例如:(second='10-20')在10秒到20秒間,每秒執行一次。(second=10-20/2)為區間內每二秒執行一次。
#可指定特定年、月、日、時、分、秒和區間,例如:month='7-8',hour='8-12',minute=30 7-8月每天8-12的30分鍾執行。
#每年第一天執行。
schedule.add_job(job_3, 'cron', year='*',day=1,args=['Happy New Year'])

schedule.start()


結果:

    Happy New Year


沒有留言:

張貼留言

Ubuntu-Journalctl查看系統日誌

 近期所使用Ubuntu系統24小時開著,進行跑Python程式使用,但跑個2~3天,排程就無法正常寄信,SSH連線也無法正常連線,經查看後為wifi連線問題,暫先使用腳本排程進行重開wifi。 以下為記錄Journalctl指令。 使用Journalctl來從系統日誌上查看看問...