Остановить витой реактор по состоянию - PullRequest
17 голосов
/ 30 июня 2011

Есть ли способ остановить закрученный реактор при достижении определенного состояния. Например, если для переменной задано определенное значение, то реактор должен остановиться?

Ответы [ 2 ]

24 голосов
/ 30 июня 2011

В идеале, вы не установили бы значение переменной и не остановили бы реактор, вы бы назвали reactor.stop(). Иногда вы не в главном потоке, и это не разрешено, поэтому вам может потребоваться вызвать reactor.callFromThread. Вот три рабочих примера:

# in the main thread:
reactor.stop()

# in a non-main thread:
reactor.callFromThread(reactor.stop)

# A looping call that will stop the reactor on a variable being set, 
# checking every 60 seconds.
from twisted.internet import task
def check_stop_flag():
    if some_flag:
        reactor.stop()
lc = task.LoopingCall(check_stop_flag)
lc.start(60)
6 голосов
/ 30 июня 2011

уверен:

if a_variable == 0:
    reactor.stop()
...