私は 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.LoopingCallhttp://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.TimerServicehttp://twistedmatrix.com/documents/current/api/twisted.application.internet.TimerService.htmlもあります。