use of com.azure.cosmos.ChangeFeedProcessor in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SalesOrder method MigrateJavaSDKv4CFAsync.
/**
* https://docs.microsoft.com/en-us/azure/cosmos-db/migrate-java-v4-sdk
* Change Feed
*/
/**
* Change Feed
*/
public static void MigrateJavaSDKv4CFAsync() {
String hostName = "hostname";
String partition_key = "/pk";
CosmosAsyncContainer feedContainer = null;
CosmosAsyncContainer leaseContainer = null;
// <MigrateCFAsync>
ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder().hostName(hostName).feedContainer(feedContainer).leaseContainer(leaseContainer).handleChanges((List<JsonNode> docs) -> {
logger.info("--->setHandleChanges() START");
for (JsonNode document : docs) {
try {
// Change Feed hands the document to you in the form of a JsonNode
// As a developer you have two options for handling the JsonNode document provided to you by Change Feed
// One option is to operate on the document in the form of a JsonNode, as shown below. This is great
// especially if you do not have a single uniform data model for all documents.
logger.info("---->DOCUMENT RECEIVED: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(document));
// You can also transform the JsonNode to a POJO having the same structure as the JsonNode,
// as shown below. Then you can operate on the POJO.
CustomPOJO pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO.class);
logger.info("----=>id: " + pojo_doc.getId());
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
logger.info("--->handleChanges() END");
}).buildChangeFeedProcessor();
// ...
changeFeedProcessorInstance.start().subscribeOn(Schedulers.elastic()).subscribe();
// </MigrateCFAsync>
}
Aggregations