以后调度代码时出错

时间:2017-10-04 14:24:37

标签: python scheduled-tasks apscheduler

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

错误: 装修工作 Traceback(最近一次调用最后一次):   File" D:/ Alexey / Education / Courses / Selenium WebDriver with Python / SeleniumDriversTests / Scheduler.py",第12行,in     scheduler.add_job(some_job(),args = [' text'])   文件" C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ schedulers \ base.py",第425行,在add_job中     job =工作(自我,** job_kwargs)   文件" C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py",第44行, init     self._modify(id = id或uuid4()。hex,** kwargs)   _modify中的文件" C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py",第165行     提出TypeError(' func必须是一个可调用的或文本引用一个') TypeError:func必须是对一个

的可调用或文本引用

1 个答案:

答案 0 :(得分:0)

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