You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/06/26 03:28:50 UTC
[james-project] 10/28: JAMES-2794 Dequeuer should rely on concatMap
and not flatMap
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit aad4442b6cb902ea216434fd644d6615661ead78
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jun 18 14:16:33 2019 +0700
JAMES-2794 Dequeuer should rely on concatMap and not flatMap
flatMap can lead to event reordering (8% occurrence) which causes
browseAndDequeueShouldCombineWellWhenDifferentSlices to be flacky.
Note that filtering out deleted emails actually increased the inconsistency
window
---
.../src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
index 95f13ee..7ed8d3e 100644
--- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
+++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
@@ -89,8 +89,8 @@ class Dequeuer {
}
Flux<? extends MailQueue.MailQueueItem> deQueue() {
- return flux.flatMap(this::loadItem)
- .flatMap(this::filterIfDeleted);
+ return flux.concatMap(this::loadItem)
+ .concatMap(this::filterIfDeleted);
}
private Mono<RabbitMQMailQueueItem> filterIfDeleted(RabbitMQMailQueueItem item) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org