Partage
  • Partager sur Facebook
  • Partager sur Twitter

APScheduler, comment puis-je utiliser 'modify'

Sujet résolu
    2 mars 2021 à 15:44:35

    Bonjour à tous

    J'essai d'utiliser la bibliothèque APScheduler ( https://apscheduler.readthedocs.io/en/stable/userguide.html  ).

    je souhaite changer le paramètre seconds= avec la méthode .modify apres avoir déjà débuter la planification. Mais j'ai une erreur qui me dis:

    AttributeError: 'BackgroundScheduler' object has no attribute 'modify'



    voici mon code de test:

    from apscheduler.schedulers.background import BackgroundScheduler
    
    
    class Sched():
        def __init__(self): 
            self.interval = 1 
            self.scheduler = BackgroundScheduler()
            self.count = 0
            
        def start_scheduler(self):
            self.scheduler.add_job(self.advance, trigger='interval', seconds=self.interval,id='step')
            self.scheduler.start(paused=True)
    
        def advance(self):
            self.count += 1
            if self.count >= 4 :
                self.interval = 2
                self.scheduler.modify(id='step', seconds=self.interval)
    
            print(self.count, self.interval)
    
        def go_Start(self):
            self.scheduler.resume() 
     
    
    
    
    s = Sched()
    s.start_scheduler()
    s.go_Start()



    j'ai testé aussi scheduler.reschedule_job

    mais je doit pas bien m'y prendre car, j'ai une erreur similaire. Est-ce dans l'import qu'il faut ajouter quelque chose, ou est-ce qu'il faut que je fasse un héritage de class, mais la quelle?

    pouvez-vous m'aider ou me mettre une la bonne piste?

    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2021 à 16:57:30

      la fonction à utiliser semble être reschedule_job(id='step',trigger='interval', seconds=self.interval)

      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2021 à 17:16:57

        Merci, j'avais testé cette méthode aussi, comme je l'ai marqué en fin de message.

        suite à t'as proposition, j'ai creusé, et enfaite, c'est dans les argument que je faisais une erreur. 

        avec ceci ça fonctionne:

        self.scheduler.reschedule_job('step',trigger='interval', seconds=self.interval)


        le id= était de trop.

        merci

        • Partager sur Facebook
        • Partager sur Twitter

        APScheduler, comment puis-je utiliser 'modify'

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown