У меня есть конечная точка HTTP API, которую мне нужно постоянно проверять на наличие новых значений. К счастью, он поддерживает длительный опрос. Итак, идея состоит в том, что мне нужно реализовать «бесконечный цикл», в котором я делаю запрос, жду ответа (максимум 10 минут), получаю какое-то значение из ответа и создаю побочный эффект, сохраняя их где-то, делаю еще один запрос.
Учитывая, что у меня есть функция, вызов которой запустит этот «бесконечный цикл», мне также нужно вернуть Closable
, чтобы удовлетворить Finagle API, с которым я интегрируюсь, чтобы процесс можно было прервать. Если HTTP-запрос не работает, мне нужно немедленно повторить попытку.
Теперь мне нужно выяснить, как реализовать это с помощью Future
s в Finagle. Интересно, могу ли я использовать рекурсию, применив преобразование к ответу Future? .. Или мне что-то не хватает, и есть более простой способ сделать это в Finagle?
Спасибо!
time.awakeEvery.map(<do http call>)
. - person Reactormonk   schedule 23.06.2016