return i++;
}
})
+ .delayElements(Duration.ofMillis(ThreadLocalRandom.current().nextLong(500, 1500)))
.map(i -> "Message #" + i)
.flatMap(message -> sendMessage(chatRoom, message)
- .delayElement(Duration.ofMillis(ThreadLocalRandom.current().nextLong(500, 1500)))
.retryWhen(Retry.fixedDelay(10, Duration.ofSeconds(1))))
.doOnNext(message ->
{
user,
e.getResponseBodyAsString(Charset.defaultCharset()));
})
- .parallel()
+ .limitRate(1)
+ .takeUntil(message -> !running)
+ .doOnComplete(() -> log.info("TestWriter {} is done", user))
+ .parallel(1)
.runOn(Schedulers.parallel())
.then();
}
private final WebClient webClient;
private final ChatRoomInfoTo chatRoom;
- private final User user;
+ final User user;
final List<MessageTo> sentMessages = new LinkedList<>();
volatile boolean running = true;