我正在研究 Twisted 套接字,但我听说如果您在使用套接字时使用 time.sleep,系统会挂起并且套接字会停止。有没有什么方法可以在没有 time.sleep 的情况下进行倒计时?
谢谢。
Twisted 有几个选择。您可以使用一个简单的函数来检查条件。
from twisted.internet import reactor
expire = 10
def tick():
expire -= 1
if expire == 0:
reactor.stop()
return
reactor.callLater(1, tick)
reactor.callLater(0, tick)
reactor.run()
还有twisted.internet.task.LoopingCall http://twistedmatrix.com/documents/current/api/twisted.internet.task.LoopingCall.html
from twisted.internet.task import LoopingCall
def tick():
if expired = 0:
reactor.stop()
return
do_something()
task = LoopingCall(tick)
task.start()
reactor.run()
如果您使用的是扭曲的应用程序 (twistd) 或其他一些多服务,那么还有 twisted.application.internet.TimerService http://twistedmatrix.com/documents/current/api/twisted.application.internet.TimerService.html