thread.Timerクラスを使用しようとしていますが、クラッシュしています。 ここにアイデアがあります:私は、Webアプリケーションで最適化を起動するコードを持っています。最適化が開始されると、Webアプリケーションサーバーに定期的なリクエストを送信して、最適化が完了したかどうかを知りたい、またはまだ実行しています。スレッドタイマーでPythonの問題が発生する
def checkPeriodically(self):
print "Sending a request"
finished = self.checkOptim()
if finished :
return
t = threading.Timer(60,self.checkPeriodically)
t.start()
私のcheckOptim関数は、mechanizeを使用してアプリケーションに接続し、結果ページを読み取ります。最適化が完了したかどうかを確認するためにHTMLParserを使用します。
def checkOptim(self):
browser = mechanize.Browser()
browser.set_handle_refresh(True, honor_time=True, max_time=10)
browser.open('resultPageURL')
response = browser.response().read()
parser = MyHTMLParser(self.optimName)
parser.feed(response)
return parser.optimFinished
このすべては、私はQGISのために書いているプラグイン(GIS)の一部ですが、私は、問題がソフトウェアに関連しているとは思わない、それが適切にスレッドクラスを使用していない、おそらく私が原因であります。どんな助力も深く感謝します。
あなたが正しかった、問題はそのoject(クラス)から事実から来ています私は "checkPeriodically"と呼ばれるソフトウェアがクラッシュする原因となるタイマーが発生したときにもう存在しません。 – Ril8772