GH-233: Add batch consumer for Kinesis sample

Fixes https://github.com/spring-cloud/spring-cloud-stream-samples/issues/233
This commit is contained in:
augustine-p
2023-01-03 23:35:36 +05:30
committed by GitHub
parent e2bf4ebb63
commit b07961aa1b
2 changed files with 30 additions and 1 deletions

View File

@@ -16,6 +16,7 @@
package demo.stream;
import java.util.List;
import java.util.function.Consumer;
import org.apache.commons.logging.Log;
@@ -54,4 +55,20 @@ public class OrderStreamConfiguration {
};
}
@Bean
public Consumer<List<Event>> processOrders(OrderRepository orders) {
return eventList -> {
//log the number of orders received and each order
logger.info("Received " + eventList.size() + " orders");
for(Event event: eventList) {
if (!event.getOriginator().equals("KinesisProducer")) {
logger.info("An order has been received " + event.toString());
}
else {
logger.info("An order has been placed from this service " + event.toString());
}
}
};
}
}

View File

@@ -20,11 +20,23 @@ spring:
content-type: application/json
producer:
partitionKeyExpression: "1"
headerMode: none
processOrder-in-0:
destination: test_stream
content-type: application/json
processOrders-in-0:
destination: test_stream
content-type: application/json
consumer:
headerMode: none
kinesis:
bindings:
processOrders-in-0:
consumer:
listenerMode: batch
recordsLimit: 5
function:
definition: processOrder;produceOrder
definition: processOrder;produceOrder;processOrders
datasource:
url: jdbc:h2:mem:testdb
driverClassName: org.h2.Driver