J'essaie de contribuer à un projet Python sur Github pour collecter des données de FXCM et j'ai quelques problèmes avec APScheduler dans une classe.APScheduler dans un objet Class
Voici une coupure de code.
# director.py
from apscheduler.scheduler import Scheduler
class Director(object):
"""
Description
"""
class TimeKeeper(Director):
"""
Description
"""
def __init__(self):
sched = Scheduler()
def min_1(self):
td = 300
tf = 'm1'
print("TimeDelta: %s --- Time Frame: %s --- Event: 'GetLive' sent to queue") % (td, tf)
# other functions at different times
def start_timers(self):
self.sched.start()
self.sched.add_cron_job(self.min_1, minute='0-59')
La classe commence avec un autre script ci-dessous:
# main.py
from director import TimeKeeper
if __name__ == "__main__":
"""
Description
"""
TimeKeeper().start_timers()
Le problème est, une fois que le script est exécuté, il court pour une fraction de seconde puis arrête, il n'y a aucune erreur de retraçage.
La classe est-elle mal conçue ou est-ce que certaines parties du code me manquent? L'aide des Communautés serait grandement appréciée!
Peut-être que vous utilisez une ancienne version de APScheduler, mais l'importation ne fonctionne pas pour 'Scheduler'. Cela dit, il existe plusieurs variantes du planificateur. Vous voulez probablement un 'BackgroundScheduler', à moins que votre code ne puisse s'asseoir et se bloquer après' .start() '. Dans ce cas, je commencerais probablement le planificateur dans son propre thread ou processus. – JoshAdel
Merci pour votre réponse, j'utilise APScheduler 2.1.2. – James
@JoshAdel Je l'ai juste essayé avec la version 3.x plus récente 'apscheduler.scheduler import Scheduler' à' from apscheduler.schedulers.background import BackgroundScheduler' et 'sched = Scheduler()' à 'sched = BackgroundScheduler()' J'obtiens le même résultat. – James