2017-10-04 22 views
0

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 :/알렉세이/교육/강좌/파이썬/SeleniumDriversTests/Scheduler.py와 셀레늄 WebDriver", 라인 (12), 파일 "C : \ Python \ Python36 \ lib \ site-packages \ apscheduler \ schedulers \ base.py"파일 425 행의 add_job 작업의 scheduler.add_job (some_job(), args = [ 'text']) = Job (self, ** job_kwargs) 파일 "C : ₩ Python ₩ Python36 ₩ lib ₩ site-packages ₩ apscheduler ₩ job.py"파일의 44 행 "C : \ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py"파일, 165 행, _modify 파일 raise TypeError (예 : id = id 또는 uuid4(), 16 진수, ** kwargs) 파일 ('func는 호출 가능하거나 텍스트 참조이어야합니다') TypeError : func는 호출 가능하거나 하나의 텍스트 참조 여야합니다.

+0

을 some_job하기 위해 인수를 삭제하거나 PARAM를 추가 할 필요가 너무 PARAMS이 없습니다 .add_jo 비(). 그것이 작동하지 않는 이유입니다. –

+0

대단히 고마워요. –

답변

0

이는 add_job이 함수를 param으로 사용하여 스케줄러가 런타임을 실행하기 때문입니다. 그래서 some_job 후 브래킷을 제거하고 또한 some_job 어떤 기능을 사용하는 방법을 당신은 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()