org.zalando.riptide.failsafe.RetryAfterDelayFunction Maven / Gradle / Ivy
package org.zalando.riptide.failsafe;
import lombok.extern.slf4j.Slf4j;
import net.jodah.failsafe.ExecutionContext;
import net.jodah.failsafe.RetryPolicy.DelayFunction;
import net.jodah.failsafe.util.Duration;
import org.apiguardian.api.API;
import org.zalando.riptide.HttpResponseException;
import javax.annotation.Nullable;
import java.time.Clock;
import java.time.Instant;
import java.time.format.DateTimeParseException;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import static java.lang.Long.parseLong;
import static java.time.Duration.between;
import static java.time.Instant.now;
import static java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME;
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
/**
* @see RFC 7231, section 7.1.3: Retry-After
*/
@API(status = EXPERIMENTAL)
@Slf4j
public final class RetryAfterDelayFunction implements DelayFunction © 2015 - 2025 Weber Informatics LLC | Privacy Policy