Sample required in docs for periodic timers · Issue #915 · encode/starlette · GitHub
from apscheduler.triggers.cron import CronTrigger
from starlette.applications import Starlette
from apscheduler.schedulers.asyncio import AsyncIOScheduler
async def cron_job():
print('task is running')
async def startup_event():
scheduler = AsyncIOScheduler()
# run every minute
scheduler.add_job(cron_job, CronTrigger.from_crontab('* * * * *'))
scheduler.start()
app = Starlette(
on_startup=[startup_event],
)