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?
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)
sure:
if a_variable == 0:
reactor.stop()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With