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