.map(chatRoomTo ->
{
UUID chatRoomId = UUID.fromString(chatRoomTo.getId());
- int shard = shardingStrategy.selectShard(chatRoomId);
-
- log.info(
- "{} - old shard: {}, new shard: {}",
- chatRoomId,
- chatRoomTo.getShard(),
- shard);
-
- return new ChatRoomInfo(
- chatRoomId,
- chatRoomTo.getName(),
- shard);
+ return new ChatRoomInfo(chatRoomId, chatRoomTo.getName(), null);
});
}
@Override
- public void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux)
+ public void writeChatRoomData(
+ UUID chatRoomId,
+ Flux<Message> messageFlux,
+ SuccessCallback successCallback,
+ FailureCallback failureCallback)
{
messageFlux
.map(message -> MessageTo.from(chatRoomId, message))
+ .doOnComplete(() -> successCallback.accept(chatRoomId))
+ .doOnError(throwable -> failureCallback.accept(chatRoomId, throwable))
.subscribe(messageTo -> messageRepository.save(messageTo));
}