job的时间类型为date时,无法修改job参数

因为date是执行一次之后就会销毁。修改参数时无法找到任务。

只有非date类型时,才可以修改参数

当前时间10秒后开始任务:

job = scheduler.add_job(func, 'cron', id=job_id, second='*/10')
# 或者
job = scheduler.add_job(func, 'cron', args=['cron'],  id=job_id, second='*/10')

# 启动
scheduler.start()
def func(trigger):
    # 执行业务参数

    # 业务结束之后 再次调用自己。下次任务在当前时间1小时后继续执行 hour是正整时
    scheduler.reschedule_job(job_id, trigger='cron', hour='*/1')

demo

#!usr/bin/env python
import time
import logging
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
 
 
def func(trigger):
    print(trigger, datetime.now())
 
 
logging.getLogger('apscheduler').setLevel(logging.DEBUG)  # 调度器日志级别
scheduler = BackgroundScheduler()
time_now = datetime.now()
scheduler.add_job(func, 'cron', args=['cron'], hour=time_now.hour, minute=time_now.minute, second=time_now.second + 3)  # 定时调度
# max_instances表示最多启动几个任务实例,replace_existing表示新的实例是否替换仍未结束的旧实例
scheduler.add_job(func, 'interval', kwargs={'trigger': 'interval'}, seconds=1, max_instances=1, next_run_time=time_now)  # 循环调度
scheduler.start()
time.sleep(3)
 
print('暂停调度器')
scheduler.pause()  # 暂停调度器
time.sleep(3)
 
print('恢复调度器')
scheduler.resume()  # 恢复调度器
time.sleep(3)
 
print('停止调度器')
scheduler.shutdown(wait=False)  # 停止调度器,wait表示是否等待已经激活的任务完成再停止
最后修改于:2021-10-28 15:55
文章链接: https://oct.cn/view/115
版权声明: 本站所有文章除特别声明外。转载请注明来自 十月笔记