2017-05-23 12 views
0

次のプログラムが実行されています。すべてのプログラムがここに表示されているわけではありません。関連する部分のみがここに表示されます。ポイントは、定期的にアプリを実行して、ウェブサイトから新しいデータをクロールすることです。私はthreadtimerを使用しましたが失敗しました。ここで定期的にアプリケーションを実行する

import time, threading 
# some parts of the program are not shown here for their irrelevancy. 
app = Flask(__name__) 

@app.route('/') 
@app.route('/weather') 
def weather() -> 'html': 
    place = "논현동 air quality information" 
    # bringing in the crawled data 
    (match_web, match_db, update) = run_crawl() 
    air_pm = str(match_web[0]) 
    ozone = str(match_web[1]) 
    total_air = str(match_web[2]) 
    update_time = update 

    return render_template('weather.html', place = place, air_pm = air_pm, ozone 
= ozone, total_air = total_air, update_time = update) 

if __name__ == '__main__': 
    threading.Timer(100, app.run(debug=True, host='0.0.0.0')).start() 

は、実行

c:\yu_weather\flask-weather-yu>py -3 weather_crawling_rev7.py 
* Restarting with stat 
* Debugger is active! 
* Debugger PIN: 224-483-614 
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [23/May/2017 10:24:47] "GET/HTTP/1.1" 200 - 
127.0.0.1 - - [23/May/2017 10:24:47] "GET /favicon.ico HTTP/1.1" 404 - 
Exception in thread Thread-2: 
Traceback (most recent call last): 
File "C:\Python36-32\lib\threading.py", line 916, in _bootstrap_inner 
self.run() 
File "C:\Python36-32\lib\threading.py", line 1182, in run 
self.function(*self.args, **self.kwargs) 
TypeError: 'NoneType' object is not callable 

Exception ignored in: <module 'threading' from 'C:\\Python36- 
32\\lib\\threading.py'> 
Traceback (most recent call last): 
File "C:\Python36-32\lib\threading.py", line 1294, in _shutdown 
t.join() 
File "C:\Python36-32\lib\threading.py", line 1056, in join 
self._wait_for_tstate_lock() 
File "C:\Python36-32\lib\threading.py", line 1072, in _wait_for_tstate_lock 
elif lock.acquire(block, timeout): 
KeyboardInterrupt 
Exception in thread Thread-1: 
Traceback (most recent call last): 
File "C:\Python36-32\lib\threading.py", line 916, in _bootstrap_inner 
self.run() 
File "C:\Python36-32\lib\threading.py", line 1182, in run 
self.function(*self.args, **self.kwargs) 
TypeError: 'NoneType' object is not callable 
+0

マイナーな書式設定を改善しました。 –

答えて

0

後、タイマの第2引数は関数でなければならないエラーメッセージです。試してみてください

threading.Timer(100, lambda: app.run(debug=False, host='0.0.0.0')).start() 
+0

また、最初の引数は秒であることに注意してください。私はあなたが0.1 –

+0

あなたの提案を試して欲しいと思う。しかし、エラーが発生しました。他の提案はしてください。 –

+0

ファイル "C:\ Python36-32 \ lib \ signal.py"、行47、シグナル ハンドラ= _signal.signal(_enum_to_int(signalnum)、_enum_to_int(ハンドラ)) ValueError:シグナルはメインスレッドでのみ動作します –

関連する問題