Несмотря на проблемы с таймерами python, я обнаружил, что когда bottle.py запускается с «reloader = True», все функции таймера выполняются дважды подряд.Функции таймера Python выполняются дважды с флажком.pdf, когда reloader = True
Я пробовал это с несколькими различными способами вызова таймеров, и результат одинаковый во всех случаях (двойной запуск).
Пример кода:
#!/usr/bin/env python
from threading import Timer
from bottle import *
# Short timer
def short_time():
t = Timer(1, short_time)
t.daemon = True
t.start()
print "Short Time..."
# Long timer
def long_time():
t = Timer(5, long_time)
t.daemon = True
t.start()
print "Long Time..."
# The App
app = Bottle()
@app.route('/status')
def default():
return "OK"
#Run the app -----
if __name__ == '__main__':
# Start the short timer.
short_time()
# Start the long timer.
long_time()
# Run the app
# This interferes with the timers
run(app, host='0.0.0.0', port=8002, reloader=True)
#This one works as expected
#run(app, host='0.0.0.0', port=8002) #This works fine
Выход с перегружатель включен:
Short Time...
Short Time...
Short Time...
Short Time...
Short Time...
Short Time...
Short Time...
Short Time...
Long Time...
Short Time...
Long Time...
Short Time...
Short Time...
Short Time...
Ожидаемый выход (без перегружателя):
Short Time...
Short Time...
Short Time...
Short Time...
Long Time...
Short Time...
Short Time...
Short Time...
Short Time...
Short Time...
Long Time...
Short Time...
Short Time...
Любые идеи о как использовать rel oader, но предотвратить проблему с таймером?
Связанный: [? Почему работает сам DEV сервер запустить КОЛБУ дважды] (https: // StackOverflow. com/q/25504149) –