socket_io
フラスコアプリケーションで使用しようとしています。問題は、以下の url_route 関数のように、データベース クエリを実行するときです。最初はページが正しく読み込まれますが、連続した呼び出しではプロセスがブロック状態になります。KeyboardInterrupt (Ctrl + c) で 1 つの Python プロセスが終了しても、もう 1 つのプロセスを手動で強制終了する必要があります。
明らかな解決策の 1 つは、キャッシュを使用し、別のスクリプトを使用してデータベースに対してクエリを実行することです。別のスクリプトの実行を回避できる他の解決策はありますか?
@app.route('/status/<urlMap>')
def status(urlMap):
dictResponse = {}
data = models.Status.query.filter_by(urlmap = urlMap).first()
if data.conversion == "DONE":
dictResponse['conversion'] = 'success'
if data.published == "DONE":
dictResponse['publish'] = 'success'
return render_template('status.html',status = dictResponse)
また、アプリを削除して代わりにimport flask.ext.socketio
使用すると、完全に動作します。だから、どういうわけかプロセスをブロックしている非同期gevent呼び出しだと思います。app.run(host='0.0.0.0')
socketio.run(app,host='0.0.0.0')