Skip to content

Commit 6b7667d

Browse files
committed
Strengthen retry logic to only be executed when retry after value is returned from telegram
1 parent fa74aa8 commit 6b7667d

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,20 @@ private <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequ
231231
return response;
232232
}
233233

234-
try {
235-
Thread.sleep(Duration.ofSeconds(15));
234+
if (response.parameters() != null && response.parameters().retryAfter() > 0) {
235+
var retryDelay = Duration.ofSeconds(response.parameters().retryAfter());
236+
237+
try {
238+
Thread.sleep(retryDelay);
236239

237-
response = bot.execute(request);
240+
response = bot.execute(request);
238241

239-
if (response.isOk()) {
240-
return response;
242+
if (response.isOk()) {
243+
return response;
244+
}
245+
} catch (InterruptedException e) {
246+
Thread.currentThread().interrupt();
241247
}
242-
} catch (InterruptedException e) {
243-
Thread.currentThread().interrupt();
244248
}
245249

246250
throw new TelegramApiException(request.getMethod(), response.description());

0 commit comments

Comments
 (0)