J'ajoute un travail à un planificateur en utilisant apscheduler en utilisant un script. Malheureusement, le travail n'est pas correctement planifié lors de l'utilisation d'un script car je n'ai pas démarré le planificateur.Comment forcer apscheduler à ajouter des tâches au magasin de travaux?
scheduler = self.getscheduler() # initializes and returns scheduler
scheduler.add_job(trigger=trigger, func = function, jobstore = 'mongo') #sample code. Note that I did not call scheduler.start()
Je vois un message: apscheduler.scheduler - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
Le script est censé créer des emplois au planificateur (pas exécuter le planificateur à ce cas particulier) et il y a d'autres informations qui doivent être ajouté sur l'événement d'un travail ajouté à la base de données. Est-il possible d'ajouter un travail et de forcer le planificateur à l'ajouter au jobstore sans réellement exécuter le planificateur?
Je sais, qu'il est possible de démarrer et d'arrêter le planificateur après l'ajout de chaque travail pour que le planificateur enregistre les informations de travail dans le jobstore. Est-ce vraiment une bonne approche? Edit: Mon intention originale était d'isoler le processus d'initialisation de mon logiciel. Je voulais juste ajouter des tâches à un planificateur, qui n'a pas encore démarré. Le vrai problème est que j'ai donné la permission à l'utilisateur de démarrer et d'arrêter le planificateur. Je ne peux pas garantir qu'il existe une instance en cours d'exécution du planificateur dans le système. J'ai corrigé temporairement le problème en démarrant le planificateur et en l'arrêtant après l'ajout de tâches. Ça marche.
Je ne sais pas comment utiliser RPC avec ça. Je vais essayer et informer plus tard. Mon souci est que le planificateur sait déjà que le travail est censé être ajouté. Il attend que l'ordonnanceur soit démarré, ce que je ne suis pas destiné à faire à ce moment précis. J'espère que nous sommes tous les deux dans la même page. J'utilise python et apscheduler. Merci quand même. –
Ai-je mal compris vos exigences? N'ajoutez-vous pas les tâches dans un processus qui ne démarrera pas le planificateur? Je pensais que c'était ça. –
Je n'ai pas utilisé RPC dans ma vie et je me suis trompé quand j'ai lu votre réponse. J'essayais de mettre en place une initialisation de mon logiciel. Je voulais juste ajouter des tâches au planificateur, sans démarrer le planificateur du tout. J'ai temporairement résolu le problème en démarrant le planificateur et en l'arrêtant par la suite. Est-ce vraiment une bonne approche? Le vrai problème est que j'ai donné le contrôle à l'utilisateur pour démarrer et arrêter le planificateur, par la conception actuelle, je ne serais peut-être pas en mesure de garantir qu'une instance de Scheduler est en cours d'exécution lorsque des tâches sont ajoutées. –