2017-10-04 27 views
0

J'ai un problème avec la bibliothèque APSchedule. Je veux exécuter du code spécifique à un jour spécifique. J'ai créé le code suivant, mais j'ai une erreur. J'ai essayé différentes méthodes (vous pouvez voir le code), mais j'ai la même erreur.Erreur lors de la programmation du code plus tard

from apscheduler.schedulers.blocking import BlockingScheduler 
from datetime import datetime 
from datetime import date 

def some_job(): 
    print ("Decorated job") 

scheduler = BlockingScheduler() 
#scheduler.add_job(some_job(), 'date', run_date='2017-10-03 15:58:55', args=['text']) 
#scheduler.add_job(some_job(), 'date', run_date=datetime(2017, 10, 3, 15, 58, 55), args=['text']) 
scheduler.add_job(some_job(), args=['text']) 
scheduler.start() 

Erreur: emploi décoré retraçage (appel le plus récent en dernier): Fichier "D:/Alexey/Education/Cours/Sélénium WebDriver avec Python/SeleniumDriversTests/Scheduler.py", ligne 12, dans scheduler.add_job (some_job(), args = ['text']) Fichier "C: \ Python \ Python36 \ lib \ packages \ apscheduler \ schedulers \ base.py", ligne 425, dans le répertoire add_job = Job (self, ** job_kwargs) Fichier "C: \ Python \ Python36 \ lib \ paquets \ apscheduler \ job.py", ligne 44, en init self._modify (id = id ou uuid4(). Hex, ** kwargs) Fichier "C: \ Python \ Python36 \ lib \ packages \ apscheduler \ job.py", ligne 165, dans _modify raise TypeError (« func doit être un appelable ou une référence textuelle à une ») TypeError: func doit être appelable ou une référence textuelle à un

+0

vous appelez some_job() et passer la valeur de retour (aucun) pour programmateur .add_jo b(). C'est pourquoi ça ne marche pas. –

+0

Merci beaucoup. –

Répondre

0

C'est parce que add_job veut une fonction param afin que planificateur exécuter l'exécution. donc, supprimer les crochets après some_job et a également some_job aucune fonction params de sorte que vous devez supprimer les args ou ajouter un param à la méthode some_job

from apscheduler.schedulers.blocking import BlockingScheduler 
from datetime import datetime 
from datetime import date 

def some_job(name): 
    print ("Decorated job "+name) 

scheduler = BlockingScheduler() 
scheduler.add_job(some_job, args=['text']) 
scheduler.start()