apscheduler动态添加基本写法
apscheduler
动态添加的定时任务可以参考如下程序:
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
import time
def print_two_seconds():
print(f"=== 自动化2s:{datetime.now()} ===")
def main():
print("============================ 启动 自动化 ============================")
# 1.创建调度器
scheduler = BackgroundScheduler()
# 2. 添加任务
scheduler.add_job(print_two_seconds, 'interval', seconds=2) # 打印的第一条
# 3. 执行
scheduler.start()
# 4. 再次添加两个任务,当做是动态添加
time.sleep(0.5)
scheduler.add_job(print_two_seconds, 'interval', seconds=2) # 打印的第二条
scheduler.add_job(print_two_seconds, 'interval', seconds=2) # 打印的第三条
print(scheduler.get_jobs()) # 结果中的第一行
if __name__ == '__main__':
main()
最后的效果是:
============================ 启动 自动化 ============================
[<Job (id=045ebd24716f494cace5510c9605da70 name=print_two_seconds)>, <Job (id=c0585604a5bd4668926fe3f68f1a251a name=print_two_seconds)>, <Job (id=e29426e8f7514a13a2c8fc2374cb40d3 name=print_two_seconds)>]
=== 自动化2s:2024-02-19 10:08:29.010369 ===
=== 自动化2s:2024-02-19 10:08:29.507363 ===
=== 自动化2s:2024-02-19 10:08:29.507363 ===
=== 自动化2s:2024-02-19 10:08:31.016714 ===
=== 自动化2s:2024-02-19 10:08:31.511573 ===
=== 自动化2s:2024-02-19 10:08:31.511573 ===
=== 自动化2s:2024-02-19 10:08:33.002717 ===
=== 自动化2s:2024-02-19 10:08:33.515861 ===
=== 自动化2s:2024-02-19 10:08:33.515861 ===
因此,在系统中,使用需要动态添加的自动化程序时,只需要返回一个scheduler
的实例,然后添加任务即可
apscheduler动态添加函数
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
import time
def get_scheduler():
scheduler = BackgroundScheduler()
scheduler.start()
return scheduler
def print_two_seconds():
"""自动化:每1小时"""
print(f"=== 自动化2s:{datetime.now()} ===")
def add_1():
# 1.创建调度器
scheduler = get_scheduler()
# 2. 添加任务
scheduler.add_job(print_two_seconds, 'interval', seconds=2)
def add_2():
# 4. 再次添加两个任务,当做是动态添加
scheduler = get_scheduler()
time.sleep(0.5)
scheduler.add_job(print_two_seconds, 'interval', seconds=2)
scheduler.add_job(print_two_seconds, 'interval', seconds=2)
if __name__ == '__main__':
add_1()
add_2()
最后效果:
=== 自动化2s:2024-02-19 10:14:43.630916 ===
=== 自动化2s:2024-02-19 10:14:44.137532 ===
=== 自动化2s:2024-02-19 10:14:44.137532 ===
=== 自动化2s:2024-02-19 10:14:45.631217 ===
=== 自动化2s:2024-02-19 10:14:46.135174 ===
=== 自动化2s:2024-02-19 10:14:46.135174 ===
=== 自动化2s:2024-02-19 10:14:47.631217 ===
=== 自动化2s:2024-02-19 10:14:48.136697 ===
=== 自动化2s:2024-02-19 10:14:48.136697 ===