From 46de81d377023a22e9d8e6fe4389464f15765b80 Mon Sep 17 00:00:00 2001 From: Grische Date: Wed, 20 Apr 2022 22:39:52 +0200 Subject: [PATCH] Add exponential backoff for SendFile failures --- src/main/java/com/sheepit/client/Client.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sheepit/client/Client.java b/src/main/java/com/sheepit/client/Client.java index 673ddfc..9b13aea 100644 --- a/src/main/java/com/sheepit/client/Client.java +++ b/src/main/java/com/sheepit/client/Client.java @@ -1036,19 +1036,21 @@ import okhttp3.HttpUrl; this.isValidatingJob = true; int max_try = 3; + int timeToSleep = 22000; ServerCode ret = ServerCode.UNKNOWN; Type confirmJobReturnCode = Error.Type.OK; retryLoop: for (int nb_try = 0; nb_try < max_try; nb_try++) { if (nb_try >= 1) { // sleep before retrying - this.log.debug(checkpoint, "Sleep for 32s before trying to re-upload the frame"); + this.log.debug(checkpoint, "Sleep for " + timeToSleep / 1000 + "s before trying to re-upload the frame"); try { - Thread.sleep(32000); + Thread.sleep(timeToSleep); } catch (InterruptedException e) { confirmJobReturnCode = Error.Type.UNKNOWN; } + timeToSleep *= 2; // exponential backoff } ret = this.server.HTTPSendFile(url_real, ajob.getOutputImagePath(), checkpoint, this.gui);