稍后调度代码时出错

问题描述:

我遇到APSchedule库问题。我想在特定的日子运行特定的代码。我创建了下一个代码,但出现错误。我尝试了不同的方法(你可以看到代码),但我得到了同样的错误。稍后调度代码时出错

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() 

错误: 装饰工作 回溯(最近通话最后一个): 文件 “d:/阿列克谢/教育/课程/硒的webdriver与Python/SeleniumDriversTests/Scheduler.py”,第12行在 scheduler.add_job(some_job(),args = ['text']) 作业文件“C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ schedulers \ base.py”,行425,add_job job = Job(self,** job_kwargs) 文件“C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py”,第44行,在init self._modify(id = id或uuid4().hex,** kwargs) 在_modify中的第165行文件“C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py”raise TypeError ('func必须是可调用的或文本引用的') TypeError:func必须是可调用的或文本引用的一个

+0

你打电话some_job()和它的返回值(无)传递给调度.add_jo B()。这就是为什么它不起作用。 –

+0

非常感谢。 –

这是因为add_job需要一个函数作为参数,以便调度程序将运行它。所以删除some_job后的括号内,也some_job没有功能PARAMS,所以你需要删除ARGS或添加参数去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()