0

我正在研究 Twisted 套接字,但我听说如果您在使用套接字时使用 time.sleep,系统会挂起并且套接字会停止。有没有什么方法可以在没有 time.sleep 的情况下进行倒计时?

谢谢。

4

1 回答 1

0

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

于 2012-06-06T01:34:53.227 回答