Я отказываюсь от API и пытаюсь сделать запрос GET в Android. Я использую TimerTask, чтобы запланировать выполнение запроса каждые 3 секунды. Для меня важно получать своевременные обновления из этого запроса на получение
Если я установлю слишком низкий интервал для TimeTask, около 1-2 секунд, сервер вернет ошибку 427. Я предполагаю, что это связано с тем, что для обработки запроса на получение требуется некоторое время, и когда запрос даже не завершен, приложение пытается сделать другой запрос на получение. Таким образом, сервер разрешает только один запрос за раз, и между запросами должна быть задержка.
Я могу сделать так, чтобы задержка TimerTask была задержкой, которую я установил + количество времени, необходимое для запроса на полный? Или временная задача запускает задержку только после завершения запроса?
Это может не обязательно быть временной задачей, которую я должен использовать. Было бы замечательно любое другое решение.
Я использовал OkHttp, который предоставляет обработчик завершения для запроса. Позже я переключился на использование чистого метода java HTTPUrlConnection.
Например, если я делаю запрос GET, и его выполнение занимает 700 мс, я хочу, чтобы задержка задачи таймера 3000 запускалась только тогда, когда запрос Complete.
Я подумал об использовании бесконечного while l oop и установке переменной, когда запрос завершен, и делать следующий запрос только после ожидания установленной задержки после завершения запроса. Это не сработало так хорошо на Android.