Stop twisted reactor on a condition

前端 未结 2 1690
既然无缘
既然无缘 2020-12-29 05:58

Is there a way to stop the twisted reactor when a certain condition is reached. For example, if a variable is set to certain value, then the reactor should stop?

相关标签:
2条回答
  • 2020-12-29 06:13

    Ideally, you wouldn't set the variable to a value and stop the reactor, you'd call reactor.stop(). Sometimes you're not in the main thread, and this isn't allowed, so you might need to call reactor.callFromThread. Here are three working examples:

    # 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)
    
    0 讨论(0)
  • 2020-12-29 06:30

    sure:

    if a_variable == 0:
        reactor.stop()
    
    0 讨论(0)
提交回复
热议问题