0

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')

4

1 に答える 1