Skip to content

Commit 4b7cf6e

Browse files
Address feedback
1 parent 0950932 commit 4b7cf6e

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.commons.logging.LogFactory;
2323
import org.bson.Document;
2424
import reactor.core.publisher.Mono;
25+
import reactor.core.scheduler.Schedulers;
2526

2627
import org.springframework.beans.factory.InitializingBean;
2728
import org.springframework.context.ApplicationEvent;
@@ -97,12 +98,17 @@ public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) {
9798
*/
9899
@Override
99100
public Mono<MongoSession> createSession() {
100-
return Mono.defer(() -> Mono.just(this.sessionIdGenerationStrategy.generate()))
101-
.map((sessionId) -> new MongoSession(sessionId, this.defaultMaxInactiveInterval.toSeconds()))
101+
// @formatter:off
102+
return Mono.fromSupplier(() -> this.sessionIdGenerationStrategy.generate())
103+
.map(MongoSession::new)
104+
.doOnNext((mongoSession) -> mongoSession.setMaxInactiveInterval(this.defaultMaxInactiveInterval))
102105
.doOnNext(
103106
(mongoSession) -> mongoSession.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy))
104107
.doOnNext((mongoSession) -> publishEvent(new SessionCreatedEvent(this, mongoSession)))
105-
.switchIfEmpty(Mono.just(new MongoSession(this.sessionIdGenerationStrategy)));
108+
.switchIfEmpty(Mono.just(new MongoSession(this.sessionIdGenerationStrategy)))
109+
.subscribeOn(Schedulers.boundedElastic())
110+
.publishOn(Schedulers.parallel());
111+
// @formatter:on
106112
}
107113

108114
@Override

0 commit comments

Comments
 (0)