Я пытаюсь создать 2 отдельных java микросервиса,
одну службу для вставки / обновления записей в mongoDb и другую службу для просмотра коллекции mongoDb и выполнения некоторых операций на основе вставки / обновления, произошедшей в mon go.
Один микросервис для вставки / обновления записи в mon go был создан и работает.
Затем я фактически застрял на втором микросервисе, который будет иметь mon go часы.
MyMainClass.java
public MyMainClass() {
//here i wanted to print the record which got inserted /update in mongo
}
MongoConfig.class
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
String url = "mongodb://userName:pwd@localhost:port/datbaseName";
MongoClientURI uri = new MongoClientURI(url);
MongoClient client = new MongoClient(uri);
MongoDatabase db = client.getDatabase("datbaseName");
MongoCollection<Document> coll = db.getCollection("collectionName");
ChangeStreamIterable<Document> changes = coll.watch();
changes.forEach(new Block<ChangeStreamIterable<Document>> () {
@Override public apply(ChangeStreamIterable<Document> t) {
System.out.println("doc = "+t.getFullDocument);
})
return new SimpleMongoDbFactory(uri);
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
return mongoTemplate;
}
Итак, пока я запускаю второй сервер службы, файл MongoConfig подключается к mon go и также запускает часы. Если в случае каких-либо изменений в mongoDb он печатается 'System.out.println ("do c =" + t.getFullDocument);'
Но аналогичным образом, как только я запускаю вторую службу сервер, я хотел, чтобы документированные материалы распечатывались внутри класса MyMainClass. java при любых изменениях в mon go. Так что я могу выполнить некоторые операции с этим документом.
Но я не уверен, как это можно сделать.
Пожалуйста, дайте мне знать, правильно я это делаю или неправильно. И есть ли лучший способ сделать это.