私はターミナルで現在動作しているハノイの塔に関する簡単なゲームを持っています。それは、プレイヤーが自分のターンを端末に入力することを可能にし、視覚化を端末に出力する。メインアプリケーションと並行してFlaskサーバーを実行する
私の仕事は、JSスクリプトがゲームに関する情報をサーバーにポーリングし、端末からWebページへの視覚化を倍増させるhtmlページを開くフラスコアプリケーションを作ることです。
私の問題は、ゲームとフラスコの両方にメインループがあり、それらを連続して実行すると並列に動作しないことです。
ターミナルで実行するにはゲームが必要で、ターミナルではプレイヤーが順番に回転する必要がありますが、ゲームの状態を取得して表示するにはWebサーバーが必要です。
私の質問:これには何が必要ですか?マルチプロセッシングのスレッド?
は、私はフラスコビューfrom game import game
@app.route('/get_updates')
def get_updates():
return flask.jsonify(game.instance().board)
フラスコとゲームは別のスレッドで実行されている場合、それはどのように働くつもりであるとしましょうか?別のスレッドからゲームオブジェクトを取得するにはどうすればよいですか?
別のスレッドを起動してFlaskサーバーを実行することはできますが、難しいことではありません。 – laike9m
これをチェックしてくださいhttp://stackoverflow.com/questions/14384739/how-can-i-add-a-background-thread-to-flask –
マルチスレッドは最も簡単な解決策です。変数、オブジェクトを別々のスレッド間で共有することができます。あなたはフラスコスレッドのコンストラクタのパラメータとしてゲームオブジェクトを与えます – qvpham