below is my test code:
@Test
public void scan() throws InterruptedException {
List<Message> list = new LinkedList<>();
for (int i = 0; i < 10; i++) {
ReportPropertyMessage message = new ReportPropertyMessage();
message.setMessageId(i + "");
list.add(message);
}
Flux.fromIterable(list)
.delayElements(Duration.ofMillis(20))
.subscribe(item -> System.out.println(System.currentTimeMillis() + " " + item));
Thread.sleep(2000L);
}
below is a log of my code:
1718700908162 {"messageType":"REPORT_PROPERTY","messageId":"0","timestamp":1718700907945}
1718700908356 {"messageType":"REPORT_PROPERTY","messageId":"1","timestamp":1718700907945}
1718700908378 {"messageType":"REPORT_PROPERTY","messageId":"2","timestamp":1718700907945}
1718700908403 {"messageType":"REPORT_PROPERTY","messageId":"3","timestamp":1718700907945}
1718700908427 {"messageType":"REPORT_PROPERTY","messageId":"4","timestamp":1718700907945}
1718700908449 {"messageType":"REPORT_PROPERTY","messageId":"5","timestamp":1718700907945}
1718700908474 {"messageType":"REPORT_PROPERTY","messageId":"6","timestamp":1718700907945}
1718700908494 {"messageType":"REPORT_PROPERTY","messageId":"7","timestamp":1718700907945}
1718700908518 {"messageType":"REPORT_PROPERTY","messageId":"8","timestamp":1718700907945}
1718700908543 {"messageType":"REPORT_PROPERTY","messageId":"9","timestamp":1718700907945}
The result obtained is not what I want. The time difference between the subscribed data of the first row and the second row is 200ms faster. What I want is that the interval between the first row and the second row should be controlled at about 20ms.
New contributor
烟中恶鬼 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.