18
from apscheduler.scheduler import Scheduler
import os
class ListHref():
    def __init__(self):
       print 'In ListHref Class!'
       self.name_hrefs = {}
       self.name_img = {}
       self.path = os.path.dirname(__file__)
       print 'Out ListHref Class'
    def other_function():...

def job(): #function named job
    print 'In job!'
    book_href = ListHref()
    print 'book_href created!'

if __name__ == "__main__":
    sched = Scheduler()
    #job() #it's ok if job() called only
    sched.daemonic = False #non daemon thread 
    sched.add_interval_job(job,minutes=0.1)
    sched.start()

問題: sched の代わりに job() のみを呼び出す場合は問題ないので、なぜinit (self) を完全に呼び出せないのか混乱していますか? 「ロガー「apscheduler.scheduler」のハンドラーが見つかりませんでした」の何が問題になっていますか? 上記の python コードの結果:

ジョブ内()

ListHref クラスで!

ロガー「apscheduler.scheduler」のハンドラーが見つかりませんでした

ジョブ内()

ListHref クラスで!

ジョブ内()

ListHref クラスで!

...(すぐ)

4

1 に答える 1

43

apscheduler は、初期化が必要なpythonロギング モジュールを使用しています。ロギングは少し複雑ですが (リンクを参照)、最低限のことは次のとおりです。

import logging
logging.basicConfig()

basicConfig は、いくつかの一般的なロギング機能をサポートしていますが、ロガーのより洗練された使用法をいくつか理解する価値があります。

于 2013-07-09T15:09:21.477 に答える