[X] I have checked that my issue does not already have a solution in the FAQ
[X] I have searched the existing issues and didn't find my bug already reported there
[X] I have checked that my bug is still present in the latest release
Version
3.9.1
What happened?
I have set logging. getLogger ('apscheduler '). setLevel (logging. DEBUG), and it will be executed last from 07:20:00 on February 21, 2024. After that, the task will not be executed, and the service can still be accessed normally. I am using FastAPI. No abnormalities were found in the logs, and the obtained logs are as follows:
Log output
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default"
2024-02-20 16:38:07 - INFO - Scheduler started
2024-02-20 16:38:07 - DEBUG - Looking for jobs to run
2024-02-20 16:38:07 - DEBUG - Next wakeup is due at 2024-02-20 16:38:40+08:00 (in 32.189897 seconds)
2024-02-20 16:38:40 - DEBUG - Looking for jobs to run
2024-02-20 16:38:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:38:40 CST)" (scheduled at 2024-02-20 16:38:40+08:00)
2024-02-20 16:38:40 - DEBUG - Next wakeup is due at 2024-02-20 16:38:50+08:00 (in 9.999347 seconds)
2024-02-20 16:38:50 - DEBUG - Looking for jobs to run
2024-02-20 16:38:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:38:50 CST)" (scheduled at 2024-02-20 16:38:50+08:00)
2024-02-20 16:38:50 - DEBUG - Next wakeup is due at 2024-02-20 16:39:00+08:00 (in 9.997473 seconds)
2024-02-20 16:38:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:00 CST)" executed successfully
2024-02-20 16:38:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:00 CST)" executed successfully
2024-02-20 16:39:00 - DEBUG - Looking for jobs to run
2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00)
2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00)
2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00)
2024-02-20 16:39:00 - DEBUG - Next wakeup is due at 2024-02-20 16:39:40+08:00 (in 39.995614 seconds)
2024-02-20 16:39:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:50 CST)" executed successfully
2024-02-20 16:39:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:40:00 CST)" executed successfully
2024-02-20 16:39:19 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:40 CST)" executed successfully
2024-02-20 16:39:40 - DEBUG - Looking for jobs to run
2024-02-20 16:39:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:40 CST)" (scheduled at 2024-02-20 16:39:40+08:00)
2024-02-20 16:39:40 - DEBUG - Next wakeup is due at 2024-02-20 16:39:50+08:00 (in 9.996017 seconds)
2024-02-20 16:39:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:00 CST)" executed successfully
2024-02-20 16:39:50 - DEBUG - Looking for jobs to run
2024-02-20 16:39:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:50 CST)" (scheduled at 2024-02-20 16:39:50+08:00)
2024-02-20 16:39:50 - DEBUG - Next wakeup is due at 2024-02-20 16:40:00+08:00 (in 9.998374 seconds)
2024-02-20 16:39:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:00 CST)" executed successfully
2024-02-20 16:40:00 - DEBUG - Looking for jobs to run
2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00)
2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00)
2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00)
2024-02-20 16:40:00 - DEBUG - Next wakeup is due at 2024-02-20 16:40:40+08:00 (in 39.997967 seconds)
2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:40 CST)" (scheduled at 2024-02-20 16:40:00+08:00)
2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00)
2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:50 CST)" executed successfully
2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:41:00 CST)" executed successfully
2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-20 16:50:00 CST)" executed successfully
2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-20 16:45:00 CST)" executed successfully
2024-02-20 16:40:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:40 CST)" executed successfully
2024-02-20 16:40:40 - DEBUG - Looking for jobs to run
2024-02-20 16:40:40 - DEBUG - Next wakeup is due at 2024-02-20 16:40:50+08:00 (in 9.992855 seconds)
2024-02-20 16:40:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:40+08:00)
2024-02-20 16:40:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:00 CST)" executed successfully
2024-02-20 16:40:50 - DEBUG - Looking for jobs to run
2024-02-20 16:40:50 - DEBUG - Next wakeup is due at 2024-02-20 16:41:00+08:00 (in 9.998182 seconds)
2024-02-20 16:40:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:50+08:00)
2024-02-20 16:40:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:00 CST)" executed successfully
2024-02-20 16:41:00 - DEBUG - Looking for jobs to run
2024-02-20 16:41:00 - DEBUG - Next wakeup is due at 2024-02-20 16:41:40+08:00 (in 39.998935 seconds)
2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:50 CST)" (scheduled at 2024-02-20 16:41:00+08:00)
2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:40 CST)" (scheduled at 2024-02-20 16:41:00+08:00)
2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:42:00 CST)" (scheduled at 2024-02-20 16:41:00+08:00)
2024-02-20 16:41:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:42:00 CST)" executed successfully
2024-02-20 16:41:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:50 CST)" executed successfully
2024-02-20 16:41:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:40 CST)" executed successfully
2024-02-20 16:41:40 - DEBUG - Looking for jobs to run
2024-02-20 16:41:40 - DEBUG - Next wakeup is due at 2024-02-20 16:41:50+08:00 (in 9.998590 seconds)
2024-02-20 16:41:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='*/40'], next run at: 2024-02-20 16:42:00 CST)" (scheduled at 2024-02-20 16:41:40+08:00)
2024-02-20 16:41:50 - DEBUG - Looking for jobs to run
...
2024-02-21 07:17:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:00+08:00)
2024-02-21 07:17:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:18:00 CST)" executed successfully
2024-02-21 07:17:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:17:50 CST)" executed successfully
2024-02-21 07:17:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:17:40 CST)" executed successfully
2024-02-21 07:17:40 - DEBUG - Looking for jobs to run
2024-02-21 07:17:40 - DEBUG - Next wakeup is due at 2024-02-21 07:17:50+08:00 (in 9.998795 seconds)
2024-02-21 07:17:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:40+08:00)
2024-02-21 07:17:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:00 CST)" executed successfully
2024-02-21 07:17:50 - DEBUG - Looking for jobs to run
2024-02-21 07:17:50 - DEBUG - Next wakeup is due at 2024-02-21 07:18:00+08:00 (in 9.999012 seconds)
2024-02-21 07:17:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:50+08:00)
2024-02-21 07:17:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:00 CST)" executed successfully
2024-02-21 07:18:00 - DEBUG - Looking for jobs to run
2024-02-21 07:18:00 - DEBUG - Next wakeup is due at 2024-02-21 07:18:40+08:00 (in 39.998826 seconds)
2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:50 CST)" (scheduled at 2024-02-21 07:18:00+08:00)
2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:40 CST)" (scheduled at 2024-02-21 07:18:00+08:00)
2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:00+08:00)
2024-02-21 07:18:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:19:00 CST)" executed successfully
2024-02-21 07:18:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:50 CST)" executed successfully
2024-02-21 07:18:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:40 CST)" executed successfully
2024-02-21 07:18:40 - DEBUG - Looking for jobs to run
2024-02-21 07:18:40 - DEBUG - Next wakeup is due at 2024-02-21 07:18:50+08:00 (in 9.998379 seconds)
2024-02-21 07:18:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:40+08:00)
2024-02-21 07:18:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:00 CST)" executed successfully
2024-02-21 07:18:50 - DEBUG - Looking for jobs to run
2024-02-21 07:18:50 - DEBUG - Next wakeup is due at 2024-02-21 07:19:00+08:00 (in 9.998948 seconds)
2024-02-21 07:18:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:50+08:00)
2024-02-21 07:18:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:00 CST)" executed successfully
2024-02-21 07:19:00 - DEBUG - Looking for jobs to run
2024-02-21 07:19:00 - DEBUG - Next wakeup is due at 2024-02-21 07:19:40+08:00 (in 39.999175 seconds)
2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:50 CST)" (scheduled at 2024-02-21 07:19:00+08:00)
2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:40 CST)" (scheduled at 2024-02-21 07:19:00+08:00)
2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:00+08:00)
2024-02-21 07:19:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:50 CST)" executed successfully
2024-02-21 07:19:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:20:00 CST)" executed successfully
2024-02-21 07:19:09 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:40 CST)" executed successfully
2024-02-21 07:19:40 - DEBUG - Looking for jobs to run
2024-02-21 07:19:40 - DEBUG - Next wakeup is due at 2024-02-21 07:19:50+08:00 (in 9.998658 seconds)
2024-02-21 07:19:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:40+08:00)
2024-02-21 07:19:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:00 CST)" executed successfully
2024-02-21 07:19:50 - DEBUG - Looking for jobs to run
2024-02-21 07:19:50 - DEBUG - Next wakeup is due at 2024-02-21 07:20:00+08:00 (in 9.999007 seconds)
2024-02-21 07:19:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:50+08:00)
2024-02-21 07:19:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:00 CST)" executed successfully
2024-02-21 07:20:00 - DEBUG - Looking for jobs to run
2024-02-21 07:20:00 - DEBUG - Next wakeup is due at 2024-02-21 07:20:40+08:00 (in 39.998982 seconds)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-21 07:30:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-21 07:25:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[day='', hour='7', minute='20', second='0'], next run at: 2024-02-22 07:20:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:50 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:40 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:21:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00)
2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:50 CST)" executed successfully
2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:21:00 CST)" executed successfully
2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='*/10'], next run at: 2024-02-21 07:30:00 CST)" executed successfully
How can we reproduce the bug?
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
from apscheduler.events import *
from apscheduler.schedulers.base import *
scheduler = BackgroundScheduler(job_defaults={'coalesce': True, 'misfire_grace_time': None, 'max_instances': 5})
class ScheduleService:
__scheduler = scheduler
result = {}
@classmethod
def invoke(cls):
if not cls.__scheduler:
cls.__scheduler = scheduler
return cls.__scheduler
@classmethod
def scheduler_stat(cls):
if cls.__scheduler:
return cls.__scheduler.state
return -1
@classmethod
def run(cls):
if not cls.__scheduler:
cls.invoke()
if cls.__scheduler.state != STATE_RUNNING:
cls.__scheduler.start()
cls.__scheduler.add_listener(cls.run_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
@classmethod
def run_listener(cls, event):
dtime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if event.exception:
cls.result[event.job_id] = {"datetime": dtime, "flag": 1, "remark": "异常"}
else:
cls.result[event.job_id] = {"datetime": dtime, "flag": 0, "remark": "正常"}
@classmethod
def cron_to_trigger(cls, **kwargs):
if kwargs:
trigger = CronTrigger(**kwargs)
return trigger
@classmethod
def add_job(cls, func, args, trigger, job_id):
if not cls.__scheduler:
cls.invoke()
cls.__scheduler.add_job(func=func, args=args, trigger=trigger, id=job_id)
@classmethod
def modify_job(cls, job_id, args, trigger):
if job_id:
cls.__scheduler.get_job(job_id=job_id).modify(args=args, trigger=trigger)
@classmethod
def remove_job(cls, job_id):
if cls.__scheduler:
cls.__scheduler.remove_job(job_id=job_id)
@classmethod
def remove_all_jobs(cls):
if cls.__scheduler:
cls.__scheduler.remove_all_jobs()
@classmethod
def shutdown(cls):
if cls.__scheduler:
cls.__scheduler.shutdown(wait=False)
@classmethod
def get_jobs(cls):
if cls.__scheduler:
return cls.__scheduler.get_jobs()
@classmethod
def has_job(cls, job_id):
jobs = cls.get_jobs()
if jobs:
ids = [x.id for x in jobs]
if job_id in ids:
return True
return False
@classmethod
def print_jobs(cls):
if cls.__scheduler:
cls.__scheduler.print_jobs()
if __name__ == "__main__":
...
Things to check first
[X] I have checked that my issue does not already have a solution in the FAQ
[X] I have searched the existing issues and didn't find my bug already reported there
[X] I have checked that my bug is still present in the latest release
Version
3.9.1
What happened?
I have set logging. getLogger ('apscheduler '). setLevel (logging. DEBUG), and it will be executed last from 07:20:00 on February 21, 2024. After that, the task will not be executed, and the service can still be accessed normally. I am using FastAPI. No abnormalities were found in the logs, and the obtained logs are as follows:
Log output
2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Added job "JobService.exec_compile" to job store "default" 2024-02-20 16:38:07 - INFO - Scheduler started 2024-02-20 16:38:07 - DEBUG - Looking for jobs to run 2024-02-20 16:38:07 - DEBUG - Next wakeup is due at 2024-02-20 16:38:40+08:00 (in 32.189897 seconds) 2024-02-20 16:38:40 - DEBUG - Looking for jobs to run 2024-02-20 16:38:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:38:40 CST)" (scheduled at 2024-02-20 16:38:40+08:00) 2024-02-20 16:38:40 - DEBUG - Next wakeup is due at 2024-02-20 16:38:50+08:00 (in 9.999347 seconds) 2024-02-20 16:38:50 - DEBUG - Looking for jobs to run 2024-02-20 16:38:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:38:50 CST)" (scheduled at 2024-02-20 16:38:50+08:00) 2024-02-20 16:38:50 - DEBUG - Next wakeup is due at 2024-02-20 16:39:00+08:00 (in 9.997473 seconds) 2024-02-20 16:38:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:00 CST)" executed successfully 2024-02-20 16:38:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:00 CST)" executed successfully 2024-02-20 16:39:00 - DEBUG - Looking for jobs to run 2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00) 2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00) 2024-02-20 16:39:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:39:00 CST)" (scheduled at 2024-02-20 16:39:00+08:00) 2024-02-20 16:39:00 - DEBUG - Next wakeup is due at 2024-02-20 16:39:40+08:00 (in 39.995614 seconds) 2024-02-20 16:39:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:50 CST)" executed successfully 2024-02-20 16:39:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:40:00 CST)" executed successfully 2024-02-20 16:39:19 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:40 CST)" executed successfully 2024-02-20 16:39:40 - DEBUG - Looking for jobs to run 2024-02-20 16:39:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:39:40 CST)" (scheduled at 2024-02-20 16:39:40+08:00) 2024-02-20 16:39:40 - DEBUG - Next wakeup is due at 2024-02-20 16:39:50+08:00 (in 9.996017 seconds) 2024-02-20 16:39:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:00 CST)" executed successfully 2024-02-20 16:39:50 - DEBUG - Looking for jobs to run 2024-02-20 16:39:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:39:50 CST)" (scheduled at 2024-02-20 16:39:50+08:00) 2024-02-20 16:39:50 - DEBUG - Next wakeup is due at 2024-02-20 16:40:00+08:00 (in 9.998374 seconds) 2024-02-20 16:39:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:00 CST)" executed successfully 2024-02-20 16:40:00 - DEBUG - Looking for jobs to run 2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00) 2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00) 2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00) 2024-02-20 16:40:00 - DEBUG - Next wakeup is due at 2024-02-20 16:40:40+08:00 (in 39.997967 seconds) 2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:40 CST)" (scheduled at 2024-02-20 16:40:00+08:00) 2024-02-20 16:40:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:00+08:00) 2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:40:50 CST)" executed successfully 2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:41:00 CST)" executed successfully 2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-20 16:50:00 CST)" executed successfully 2024-02-20 16:40:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-20 16:45:00 CST)" executed successfully 2024-02-20 16:40:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:40:40 CST)" executed successfully 2024-02-20 16:40:40 - DEBUG - Looking for jobs to run 2024-02-20 16:40:40 - DEBUG - Next wakeup is due at 2024-02-20 16:40:50+08:00 (in 9.992855 seconds) 2024-02-20 16:40:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:40+08:00) 2024-02-20 16:40:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:00 CST)" executed successfully 2024-02-20 16:40:50 - DEBUG - Looking for jobs to run 2024-02-20 16:40:50 - DEBUG - Next wakeup is due at 2024-02-20 16:41:00+08:00 (in 9.998182 seconds) 2024-02-20 16:40:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:00 CST)" (scheduled at 2024-02-20 16:40:50+08:00) 2024-02-20 16:40:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:00 CST)" executed successfully 2024-02-20 16:41:00 - DEBUG - Looking for jobs to run 2024-02-20 16:41:00 - DEBUG - Next wakeup is due at 2024-02-20 16:41:40+08:00 (in 39.998935 seconds) 2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:50 CST)" (scheduled at 2024-02-20 16:41:00+08:00) 2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:40 CST)" (scheduled at 2024-02-20 16:41:00+08:00) 2024-02-20 16:41:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:42:00 CST)" (scheduled at 2024-02-20 16:41:00+08:00) 2024-02-20 16:41:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-20 16:42:00 CST)" executed successfully 2024-02-20 16:41:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-20 16:41:50 CST)" executed successfully 2024-02-20 16:41:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-20 16:41:40 CST)" executed successfully 2024-02-20 16:41:40 - DEBUG - Looking for jobs to run 2024-02-20 16:41:40 - DEBUG - Next wakeup is due at 2024-02-20 16:41:50+08:00 (in 9.998590 seconds) 2024-02-20 16:41:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='*/40'], next run at: 2024-02-20 16:42:00 CST)" (scheduled at 2024-02-20 16:41:40+08:00) 2024-02-20 16:41:50 - DEBUG - Looking for jobs to run ... 2024-02-21 07:17:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:00+08:00) 2024-02-21 07:17:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:18:00 CST)" executed successfully 2024-02-21 07:17:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:17:50 CST)" executed successfully 2024-02-21 07:17:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:17:40 CST)" executed successfully 2024-02-21 07:17:40 - DEBUG - Looking for jobs to run 2024-02-21 07:17:40 - DEBUG - Next wakeup is due at 2024-02-21 07:17:50+08:00 (in 9.998795 seconds) 2024-02-21 07:17:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:40+08:00) 2024-02-21 07:17:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:00 CST)" executed successfully 2024-02-21 07:17:50 - DEBUG - Looking for jobs to run 2024-02-21 07:17:50 - DEBUG - Next wakeup is due at 2024-02-21 07:18:00+08:00 (in 9.999012 seconds) 2024-02-21 07:17:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:00 CST)" (scheduled at 2024-02-21 07:17:50+08:00) 2024-02-21 07:17:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:00 CST)" executed successfully 2024-02-21 07:18:00 - DEBUG - Looking for jobs to run 2024-02-21 07:18:00 - DEBUG - Next wakeup is due at 2024-02-21 07:18:40+08:00 (in 39.998826 seconds) 2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:50 CST)" (scheduled at 2024-02-21 07:18:00+08:00) 2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:40 CST)" (scheduled at 2024-02-21 07:18:00+08:00) 2024-02-21 07:18:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:00+08:00) 2024-02-21 07:18:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:19:00 CST)" executed successfully 2024-02-21 07:18:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:18:50 CST)" executed successfully 2024-02-21 07:18:10 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:18:40 CST)" executed successfully 2024-02-21 07:18:40 - DEBUG - Looking for jobs to run 2024-02-21 07:18:40 - DEBUG - Next wakeup is due at 2024-02-21 07:18:50+08:00 (in 9.998379 seconds) 2024-02-21 07:18:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:40+08:00) 2024-02-21 07:18:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:00 CST)" executed successfully 2024-02-21 07:18:50 - DEBUG - Looking for jobs to run 2024-02-21 07:18:50 - DEBUG - Next wakeup is due at 2024-02-21 07:19:00+08:00 (in 9.998948 seconds) 2024-02-21 07:18:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:00 CST)" (scheduled at 2024-02-21 07:18:50+08:00) 2024-02-21 07:18:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:00 CST)" executed successfully 2024-02-21 07:19:00 - DEBUG - Looking for jobs to run 2024-02-21 07:19:00 - DEBUG - Next wakeup is due at 2024-02-21 07:19:40+08:00 (in 39.999175 seconds) 2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:50 CST)" (scheduled at 2024-02-21 07:19:00+08:00) 2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:40 CST)" (scheduled at 2024-02-21 07:19:00+08:00) 2024-02-21 07:19:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:00+08:00) 2024-02-21 07:19:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:19:50 CST)" executed successfully 2024-02-21 07:19:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:20:00 CST)" executed successfully 2024-02-21 07:19:09 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:19:40 CST)" executed successfully 2024-02-21 07:19:40 - DEBUG - Looking for jobs to run 2024-02-21 07:19:40 - DEBUG - Next wakeup is due at 2024-02-21 07:19:50+08:00 (in 9.998658 seconds) 2024-02-21 07:19:40 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:40+08:00) 2024-02-21 07:19:49 - INFO - Job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:00 CST)" executed successfully 2024-02-21 07:19:50 - DEBUG - Looking for jobs to run 2024-02-21 07:19:50 - DEBUG - Next wakeup is due at 2024-02-21 07:20:00+08:00 (in 9.999007 seconds) 2024-02-21 07:19:50 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:00 CST)" (scheduled at 2024-02-21 07:19:50+08:00) 2024-02-21 07:19:50 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:00 CST)" executed successfully 2024-02-21 07:20:00 - DEBUG - Looking for jobs to run 2024-02-21 07:20:00 - DEBUG - Next wakeup is due at 2024-02-21 07:20:40+08:00 (in 39.998982 seconds) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/10'], next run at: 2024-02-21 07:30:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/5'], next run at: 2024-02-21 07:25:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[day='', hour='7', minute='20', second='0'], next run at: 2024-02-22 07:20:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:50 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[second='/40'], next run at: 2024-02-21 07:20:40 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Running job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:21:00 CST)" (scheduled at 2024-02-21 07:20:00+08:00) 2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[second='/50'], next run at: 2024-02-21 07:20:50 CST)" executed successfully 2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='/1'], next run at: 2024-02-21 07:21:00 CST)" executed successfully 2024-02-21 07:20:00 - INFO - Job "JobService.exec_compile (trigger: cron[minute='*/10'], next run at: 2024-02-21 07:30:00 CST)" executed successfully
How can we reproduce the bug?