Je tente d'exécuter plusieurs tâches AP Scheduler dans mon programme (intervalle et cron), mais lorsque j'ajoute plusieurs tâches d'intervalle avec des intervalles différents, elles s'exécutent toutes dans le plus court intervalle. Par exemple, j'ajoute un travail avec une fréquence de 30 secondes et un avec 15 secondes, les deux s'exécuteront toutes les 15 secondes.Comment exécuter des tâches AP Scheduler simultanées?
Mon code est ci-dessous. Comment puis-je correctement exécuter ces deux tâches sur des intervalles séparés?
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.executors.pool import ProcessPoolExecutor
executors = {
'default': {'type': 'threadpool', 'max_workers': 20},
'processpool': ProcessPoolExecutor(max_workers=5)
}
job_defaults = {
'coalesce': False,
'max_instances': 3
}
sched = BackgroundScheduler(executors=executors, job_defaults=job_defaults, timezone="EST")
sched.start()
sched.add_job(lambda: module.handle(self.profile, mic), 'interval', id=module.__name__, seconds=15)
sched.add_job(lambda: module2.handle(self.profile, mic), 'interval', id=module2.__name__, seconds=30)
atexit.register(lambda: sched.shutdown(wait=False))
Désolé, c'était en fait une faute de frappe. J'ajoute le deuxième travail avec un ID de module2 .__ name__ – brad999
J'avais ce problème avant que je commence à mettre manuellement l'identification dedans aussi bien. Je les ai ajoutés manuellement dans l'espoir de résoudre le problème. – brad999