Skip to content

Commit 099bb67

Browse files
committed
Rework retry logic to retry at most 3 times before failing
1 parent 6b7667d commit 099bb67

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

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

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -232,18 +232,20 @@ private <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequ
232232
}
233233

234234
if (response.parameters() != null && response.parameters().retryAfter() > 0) {
235-
var retryDelay = Duration.ofSeconds(response.parameters().retryAfter());
236-
237-
try {
238-
Thread.sleep(retryDelay);
239-
240-
response = bot.execute(request);
241-
242-
if (response.isOk()) {
243-
return response;
235+
for (int retry = 1; retry <= 3; retry++) {
236+
var retryDelay = Duration.ofSeconds(response.parameters().retryAfter());
237+
try {
238+
Thread.sleep(retryDelay);
239+
240+
response = bot.execute(request);
241+
242+
if (response.isOk()) {
243+
return response;
244+
}
245+
} catch (InterruptedException _) {
246+
Thread.currentThread().interrupt();
247+
break;
244248
}
245-
} catch (InterruptedException e) {
246-
Thread.currentThread().interrupt();
247249
}
248250
}
249251

0 commit comments

Comments
 (0)