Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Executor;
Expand Down Expand Up @@ -230,6 +231,24 @@ private <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequ
return response;
}

if (response.parameters() != null && response.parameters().retryAfter() > 0) {
for (int retry = 1; retry <= 3; retry++) {
var retryDelay = Duration.ofSeconds(response.parameters().retryAfter());
try {
Thread.sleep(retryDelay);

response = bot.execute(request);

if (response.isOk()) {
return response;
}
} catch (InterruptedException _) {
Thread.currentThread().interrupt();
break;
}
}
}

Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
throw new TelegramApiException(request.getMethod(), response.description());
}

Expand Down
Loading