排程器
AutoControl 提供 APScheduler 的包裝, 用於排程重複性的自動化任務。
基本範例
from je_auto_control import SchedulerManager
def my_task():
print("任務已執行!")
scheduler.remove_blocking_job(id="my_job")
scheduler.shutdown_blocking_scheduler()
scheduler = SchedulerManager()
scheduler.add_interval_blocking_secondly(function=my_task, id="my_job")
scheduler.start_block_scheduler()
阻塞與非阻塞模式
模式 |
說明 |
|---|---|
阻塞 (Blocking) |
|
非阻塞 (Non-blocking) |
|
間隔排程
以固定間隔執行函式:
# 每秒
scheduler.add_interval_blocking_secondly(function=my_task, id="job1")
# 每分鐘
scheduler.add_interval_blocking_minutely(function=my_task, id="job2")
# 每小時
scheduler.add_interval_blocking_hourly(function=my_task, id="job3")
# 每天
scheduler.add_interval_blocking_daily(function=my_task, id="job4")
# 每週
scheduler.add_interval_blocking_weekly(function=my_task, id="job5")
非阻塞版本可使用 add_interval_nonblocking_* 系列方法。
Cron 排程
scheduler.add_cron_blocking(function=my_task, id="cron_job", hour=9, minute=30)
移除任務
scheduler.remove_blocking_job(id="job1")
scheduler.remove_nonblocking_job(id="job2")
關閉排程器
scheduler.shutdown_blocking_scheduler()
scheduler.shutdown_nonblocking_scheduler()
Tip
完整 API 參考請見 Scheduler API。