在龙卷风中经验不是很丰富,如果听起来像是一个新手问题,对不起.
我正在使用标准html / js代码和服务器上的龙卷风与客户一起制作纸牌游戏.一切工作正常,但是我需要在服务器上实施倒计时,经过一定时间后,将运行某些代码.我正在使用以下python代码,并在提出请求后从龙卷风中调用它
import time
class StartTimer(object):
timerSeconds = 0
def __init__(self):
print "start timer initiated"
def initiateTime(self, countDownSeconds):
self.timerSeconds = countDownSeconds
while self.timerSeconds >= 0:
time.sleep(1)
print self.timerSeconds
self.timerSeconds -=1
if self.timerSeconds == 0:
#countdown finishes
print "timer finished run the code"
def getTimer(self):
return self.timerSeconds
倒计时工作正常,但是首先我遇到两个问题,虽然计时器正在倒计时服务器阻止任何其他连接,并将它们放入队列中,然后在计时器结束后运行代码,但是我需要getTimer函数才能工作进入的客户端知道还剩多少时间(基本上获取timerSeconds值).我可以避免计时器不向用户显示,但是代码被阻止的事实绝对不好.
请帮忙
解决方法:
time.sleep()将阻止,请使用add_timeout()代替
检查here
编辑:对不起,它已经由@Armin Rigo回答
这是an example:
import time
import tornado.ioloop
def delayed_print(s):
if len(s) == 0:
ioloop.stop()
else:
print s[0]
ioloop.add_timeout(time.time() + 1, lambda:delayed_print(s[1:]))
ioloop = tornado.ioloop.IOLoop()
delayed_print('hello world')
ioloop.start()