This is an automated email from the ASF dual-hosted git repository. matthieu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2d8df863369d950fbed9094e9e33f4cc3d422c23 Author: Matthieu Baechler <matth...@apache.org> AuthorDate: Wed Feb 5 17:22:10 2020 +0100 MAILBOX-396 use backoff and jitter for cassandra uid provider --- .../apache/james/mailbox/cassandra/mail/CassandraUidProvider.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java index 6dd5e17..aa957be 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java @@ -29,6 +29,7 @@ import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable. import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable.NEXT_UID; import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable.TABLE_NAME; +import java.time.Duration; import java.util.Optional; import javax.inject.Inject; @@ -47,6 +48,7 @@ import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Session; import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; public class CassandraUidProvider implements UidProvider { private static final String CONDITION = "Condition"; @@ -103,11 +105,13 @@ public class CassandraUidProvider implements UidProvider { Mono<MessageUid> updateUid = findHighestUid(cassandraId) .flatMap(messageUid -> tryUpdateUid(cassandraId, messageUid)); + Duration forever = Duration.ofMillis(Long.MAX_VALUE); + Duration firstBackoff = Duration.ofMillis(10); return updateUid .switchIfEmpty(tryInsert(cassandraId)) .switchIfEmpty(updateUid) .single() - .retry(maxUidRetries); + .retryBackoff(maxUidRetries, firstBackoff, forever, Schedulers.elastic()); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org