I am attempting to get a Timer functionality to work in Python (Python 2.7 currently).
Here is what I have so far. I am struggling with a threading issue and resetting the timer.
from threading import Timer
def api_call():
print("Call that there api")
t = Timer(10.0,api_call)
def my_callback(channel):
if something_true:
print('reset timer and start again')
t.cancel()
t.start()
print("\n timer started")
elif something_else_true:
t.cancel()
print("timer canceled")
else:
t.cancel()
print('cancel timer for sure')
try:
if outside_input_that_can_happen_a_lot:
my_callback()
finally:
#cleanup objects
Basically, my_callback() can be called a lot of times very quickly and can hit any part of the "if", "elif", or "else" statements.
The issue I am having is that when the something_true variable is true, then it will start a timer. Which works great the first time. Every time after that that it is called, I get a threading error telling me that only one thread can be used for the timer.
Basically, I want to be able to reset my timer on the first "if" and cancel if the "elif" or "else" is hit.