目前,我正在重复一个任务中使用双绞线回调内部循环中断的回调,但想反应堆打破循环回调(一个),如果用户通过按Ctrl - 发出一个KeyboardInterrupt C。从我测试过的,反应堆只在回调结束时停止或处理中断。扭曲 - 通过一个KeyboardInterrupt
是否有发送一个KeyboardInterrupt回调或回调运行中间的错误处理程序的方法吗?
干杯,
克里斯
#!/usr/bin/env python
from twisted.internet import reactor, defer
def one(result):
print "Start one()"
for i in xrange(10000):
print i
print "End one()"
reactor.stop()
def oneErrorHandler(failure):
print failure
print "INTERRUPTING one()"
reactor.stop()
if __name__ == '__main__':
d = defer.Deferred()
d.addCallback(one)
d.addErrback(oneErrorHandler)
reactor.callLater(1, d.callback, 'result')
print "STARTING REACTOR..."
try:
reactor.run()
except KeyboardInterrupt:
print "Interrupted by keyboard. Exiting."
reactor.stop()
保罗:非常感谢的说明!我问自己,为什么一半的时候,如果我有一个信号中断,代码从我的代码断绝了成功,但在反应器循环等待时产生异常。 – user500869 2010-11-10 08:46:25