2016-09-20 14 views
0

私は単純なアプリケーションをボトルに書いてあります。 10秒ごとに同じ方法を実行する必要があります。私の最初のアイデアは、このようなものだったが、それは動作していないと私はそれが醜い解決策だと思う:ボトルの非同期処理

inc = 0 
# after run server open /loop page in order do initiate loop 
@route('/loop', method='GET') 
def whiletrue(): 
    global inc 
    inc += 1 
    print inc 
    if inc != 1: 
     return str(inc) 
    while True: 
     time.sleep(1) 
     print "X", 

あなたは正しい方法でそれを行う方法を私に提案してもらえますか?

答えて

1

あなたはタイマーコマンドを使用してメソッドを呼び出すことがthreadingモジュールを使用することができます。

from functools import partial 
import threading 

class While_True(threading.Thread): 
    def __init__(self, **kwargs): 
     threading.Thread.__init__(self) 

    def whileTrue(self, *args): 
     print args 

    def caller(self, *args): 
     threading.Timer(10, partial(self.whilTrue, "Hallo")).start() 
+0

スレッドは、ボトルと矛盾していない持っていますか? –