apscheduler定时任务运行时内他的next_run_time是否已经是下一次运行时间

文章描述了一个使用Python的apscheduler库创建定时任务并在运行时查询next_run_time的情况,发现每次任务运行后next_run_time都会更新。作者探讨了这个行为的实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apscheduler定时任务运行时内他的next_run_time是否已经是下一次运行时间

python版本:3.10.5
apscheduler版本:3.10.1

如题,我做到一个关于要查询任务运行没的时候突然需要查到next_run_time的时间有没有到下一次

简单说解释如果任务正在运行,那么我去查询该任务的下一次运行时间,是否变化。

以下是测试代码(注:如果二次运行要记得删除jobs.sqlite,因为我懒得启动数据库管理工具去删除)

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from datetime import datetime, timedelta
import time


def my_job():
    """一个简单的任务,仅打印当前时间。"""
    print(f"任务运行中: {datetime.now()}")
    print(f"下一次运行时间{scheduler.get_job('my_job_id').next_run_time}")
    time.sleep(10)
    print(f"任务运行结束: {datetime.now()}")


# 使用SQLite作为存储
jobstores = {
    'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}
scheduler = BackgroundScheduler(jobstores=jobstores)
scheduler.start()

# 添加一个每10秒执行一次的任务
job = scheduler.add_job(my_job, 'interval', seconds=20, id='my_job_id')
print(f"任务添加成功,下次运行时间是: {job.next_run_time}")


# 为了保持脚本运行,不立刻关闭
try:
    while True:
        time.sleep(2)
except (KeyboardInterrupt, SystemExit):
    scheduler.shutdown()

运行结果:

任务添加成功,下次运行时间是: 2023-08-15 22:35:30.912443+08:00
任务运行中: 2023-08-15 22:35:30.919477
下一次运行时间2023-08-15 22:35:50.912443+08:00
任务运行结束: 2023-08-15 22:35:41.037717
任务运行中: 2023-08-15 22:35:51.031062
下一次运行时间2023-08-15 22:36:10.912443+08:00
任务运行结束: 2023-08-15 22:36:01.146674
任务运行中: 2023-08-15 22:36:11.024150
下一次运行时间2023-08-15 22:36:30.912443+08:00
任务运行结束: 2023-08-15 22:36:21.135388

 结论

        确实可以嗷嗷,在运行时查询到的next_run_time已经被修改了
        说明调度器在启动任务之后立马就修改了next_run_time
        方法可行,但是这有啥用呢。。。。。。。。。
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值