diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/workers/RemoveExpiredUsernameHoldsCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/RemoveExpiredUsernameHoldsCommand.java index 09345ba9c..55cd693eb 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/workers/RemoveExpiredUsernameHoldsCommand.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/workers/RemoveExpiredUsernameHoldsCommand.java @@ -5,9 +5,18 @@ package org.whispersystems.textsecuregcm.workers; +import static org.whispersystems.textsecuregcm.metrics.MetricsUtil.name; + import com.google.common.annotations.VisibleForTesting; import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.Metrics; +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.concurrent.atomic.AtomicLong; import net.sourceforge.argparse4j.inf.Subparser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,15 +25,7 @@ import org.whispersystems.textsecuregcm.storage.AccountsManager; import org.whispersystems.textsecuregcm.util.Util; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import java.time.Clock; -import java.time.Duration; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.atomic.AtomicLong; - -import static org.whispersystems.textsecuregcm.metrics.MetricsUtil.name; +import reactor.util.retry.Retry; public class RemoveExpiredUsernameHoldsCommand extends AbstractSinglePassCrawlAccountsCommand { @@ -91,6 +92,7 @@ public class RemoveExpiredUsernameHoldsCommand extends AbstractSinglePassCrawlAc "expiredHolds", String.valueOf(holdsToRemove > 0)) .increment(); return purgeMono + .retryWhen(Retry.backoff(3, Duration.ofSeconds(1))) .doOnSuccess(ignored -> deletedHoldsCounter.increment(holdsToRemove)) .onErrorResume(throwable -> { log.warn("Failed to purge {} expired holds on account {}", holdsToRemove, account.getUuid());