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/11/20 07:32:17 UTC
[james-project] 34/41: JAMES-2979 fix concurent dequeue for
MemoryMailQueue
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 c4b9d184dad70899baa7eee3ab3474d8c4f7eb6c
Author: RĂ©mi KOWALSKI <rk...@linagora.com>
AuthorDate: Thu Nov 14 13:53:17 2019 +0100
JAMES-2979 fix concurent dequeue for MemoryMailQueue
---
.../java/org/apache/james/queue/memory/MemoryMailQueueFactory.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java b/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
index b012f7f..2066a7c 100644
--- a/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
+++ b/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
@@ -55,6 +55,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
+import reactor.core.scheduler.Schedulers;
public class MemoryMailQueueFactory implements MailQueueFactory<ManageableMailQueue> {
@@ -96,7 +97,9 @@ public class MemoryMailQueueFactory implements MailQueueFactory<ManageableMailQu
this.name = name;
this.flux = Mono.fromCallable(mailItems::take)
.repeat()
- .flatMap(item -> Mono.just(inProcessingMailItems.add(item)).thenReturn(item))
+ .subscribeOn(Schedulers.boundedElastic())
+ .flatMap(item ->
+ Mono.fromRunnable(() -> inProcessingMailItems.add(item)).thenReturn(item))
.map(mailQueueItemDecoratorFactory::decorate);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org