I faced a problem. I wrote a program using the Python language and needed to run jobs at a specific time, so I used the apscheduler library and the “cron” feature.found every time, job is missed on time
from contextlib import asynccontextmanager
from apscheduler.schedulers.background import BackgroundScheduler
from fastapi import FastAPI
import backgound_operation.backup_devices as backup_devices
import db.models as models
from db.database import engine
from routers import authentication, device, user
models.Base.metadata.create_all(bind=engine)
#scheduler = BackgroundScheduler(job_defaults={'misfire_grace_time': 15*60})
scheduler = BackgroundScheduler(job_defaults={'misfire_grace_time': 3600})
#scheduler = BackgroundScheduler()
@asynccontextmanager
async def lifespan(_: FastAPI):
print("app started....")
scheduler.start()
yield
print("app stopped...")
scheduler.shutdown(wait=False)
app = FastAPI(lifespan=lifespan)
app.include_router(authentication.router)
app.include_router(user.router)
app.include_router(device.router)
def backup_job():
backup_devices.backup_devices()
scheduler.add_job(
id="job1",
func=backup_job,
misfire_grace_time=3600,
trigger="cron",
hour=7,
minute=32,
second=0,
)
and I get the error as missed job by some seconds as
Run time of job "backup_job (trigger: cron[hour='23', minute='0', second='0'], next run at: 2024-07-17 23:00:00 WAT)" was missed by 0:00:04.137012
New contributor
Taibaoui Mohamed is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.