2016-10-09 7 views
0

tornadoのアプリケーションがpythonにあります。Pythonの竜巻サーバーにゲームループを追加する

私は、竜巻のwebsocketsを使ってゲームサーバーを作ろうとしています。

問題は、サーバーで実行中のゲームループが必要なことです。

私はウェブハンドラ「/ startserverは」を作成し、次のコードを追加することができます:

@tornado.web.asynchronous 
def get(self): 
    if not serverAlreadyStarted: 
     serverAlreadyStarted = True 
     while True: 
      (...) 

これは非常にハック感じ、そしてそれは私が、サーバーを開始するたびを意味を、私は行く必要があります〜/startserver

これを行うより良い方法はありますか?サーバーが起動するとどこかにループが追加できますか?

答えて

1

あなただけのようにバックグラウンドで起動できます: `gunicorn -k竜巻はmyfile:app`私は実際に` gunicorn`は、アプリケーションを実行するために使用されていることを言及している必要があります

@gen.coroutine 
def game_loop(): 
    while True: 
     # Whatever your game loop does. 
     print("tick") 
     yield gen.sleep(1) 

if __name__ == "__main__": 
    app = make_app() 
    app.listen(8888) 
    loop = tornado.ioloop.IOLoop.current() 
    loop.spawn_callback(game_loop) 
    loop.start() 
+0

。私は「ループ」なんかにアクセスすることはできません。 –

+0

ありがとう、私はそれが働くようになった! –

関連する問題