当你有主程序需要执行,让定时任务在后台执行时,可以用BackgroundScheduler
python
from apscheduler.schedulers.background import BackgroundScheduler
import time
# 仅运行定时任务
scheduler = BackgroundScheduler()
# interval example, 间隔执行, 每10秒执行一次
def task1(x):
print(f'task 1 executed {x}--------', time.time())
# 添加一个定时任务
scheduler.add_job(
task1, 'interval', seconds=10,
args=["xxxx"], id="task_1", replace_existing=True
)
# cron examples, 每5秒执行一次 相当于interval 间隔调度中seconds = 5
def task2(y):
print(f'task 2 executed {y}--------', time.time())
# 添加一个定时任务
scheduler.add_job(
task2, 'cron', second='*/5',
args=["yyy"], id="task_2", replace_existing=True
)
scheduler.start()
while(True):
print('main ---------------')
time.sleep(1)
执行结果
main ---------------
main ---------------
main ---------------
main ---------------
task 2 executed yyy-------- 1698211520.0085256
main ---------------
main ---------------
Flask-APScheduler 中默认使用的就是 BackgroundScheduler