2017-10-04 9 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']) =ジョブ(self、** job_kwargs) ファイル "C:\ Python \ Python36 \ lib \ site-packages \ apscheduler \ job.py"、行44、"C:¥Python¥Python¥lib¥site-packages¥apscheduler¥job.py"、行165、_modifyファイル raise TypeError TypeError:funcは、呼び出し可能であるか、1つのテキスト参照でなければなりません

+0

をsome_jobする引数を削除するかのparamを追加する必要がparamsはなかったです.add_jo b()。それがうまくいかない理由です。 –

+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() 
関連する問題