Задача такова. Нужно отправлять данные с моего сервера на другой с определенным периодом времени, например, раз в час.
Думаю делать это примерно так: посылаю запрос /send-data?period=60 и данные начинают отправляться каждые 60 секунд. Потом через какое-то время отправляю запрос /stop-data и данные прекращают отправляться.
Вот так примерно думаю отправлять данные (кстати, пользуюсь flask):
def post_to_clojure():
try:
r = requests.post(config.uri)
print r.raw
except (RuntimeError, TypeError, NameError):
print "Error while query request"
@app.route('/start-timer', methods=['GET'])
def start_timer():
i = 0
while i < 5: # пока запрос отправляется 5 раз, т.к. я не знаю как его потом остановить
post_to_clojure()
time.sleep(period) # вот тут задаём период отправки
i = i + 1
@app.route('/stop-timer', methods=['GET'])
def start_timer():
# как остановить, если отправка данные сейчас идёт???
Как видите, там пока цикл идёт до 5. Но как сделать бесконечный цикл, чтобы потом можно было его остановить запросом /stop-data? Либо может есть какой-то другой способ, чтобы данные отправлялись в фоновом режиме и я мог его потом остановить запросом? Подскажите, пожалуйста, самый оптимальный способ