It also has a cron scheduler [0] which includes scheduling down to seconds and perfectly integrates with asyncio [1].
async def myfunc():
print(f"\n{Fore.GREEN}Readout triggered at { datetime.now().strftime('%H:%M:%S') }{COLORS_RESET}\n")
await disk_temperatures_handler.readout(storage)
scheduler = AsyncIOScheduler()
storage['scheduler'] = scheduler
scheduler.add_job(myfunc, CronTrigger(second='*/15'), id='readout_job')
scheduler.start()
You can also modify the interval on-the-fly.[0] https://apscheduler.readthedocs.io/en/3.x/modules/triggers/c...
[1] https://apscheduler.readthedocs.io/en/3.x/modules/executors/...
I never really liked cronjob expressions.