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/12/06 02:34:29 UTC

[james-project] 19/21: JAMES-2991 Preview computation on parallel scheduler

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 002c2d989dd3123dc309051185906ed0c9cb3af7
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Dec 2 18:16:04 2019 +0700

    JAMES-2991 Preview computation on parallel scheduler
---
 .../james/jmap/event/ComputeMessageFastViewProjectionListener.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
index cd8c9e1..9bd0794 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
@@ -44,6 +44,7 @@ import com.github.fge.lambdas.Throwing;
 import com.google.common.annotations.VisibleForTesting;
 
 import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
 
 public class ComputeMessageFastViewProjectionListener implements MailboxListener.GroupMailboxListener {
@@ -83,8 +84,10 @@ public class ComputeMessageFastViewProjectionListener implements MailboxListener
 
     private void handleAddedEvent(Added addedEvent, MailboxSession session) throws MailboxException {
         Flux.fromIterable(messageIdManager.getMessages(addedEvent.getMessageIds(), FetchGroup.BODY_CONTENT, session))
+            .flatMap(Throwing.function(messageResult -> Mono.fromCallable(
+                () -> Pair.of(messageResult.getMessageId(), computeFastViewPrecomputedProperties(messageResult)))
+                    .subscribeOn(Schedulers.parallel())))
             .publishOn(Schedulers.boundedElastic())
-            .map(Throwing.function(messageResult -> Pair.of(messageResult.getMessageId(), computeFastViewPrecomputedProperties(messageResult))))
             .flatMap(message -> messageFastViewProjection.store(message.getKey(), message.getValue()))
             .then()
             .block();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org