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