package com.wutos.sync.client.component;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.changestream.ChangeStreamDocument;
import com.wutos.sync.client.mq.ActiveMqManage;
import com.wutos.sync.domain.dto.DataMogodb;
import com.wutos.sync.domain.dto.DataSyncDTO;
import com.wutos.sync.domain.entity.DataSyncLog;
import com.wutos.sync.enums.SyncDataSource;
import com.wutos.sync.enums.SyncOptType;
import com.wutos.sync.service.IDataSyncService;
import com.wutos.sync.utils.UUIDUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jms.JMSException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
/***
* author:hushasha
*/
public class MogodbTask implements Runnable {
Logger logger = LoggerFactory.getLogger(MogodbTask.class);
/**
* 配置监控的表名
*/
private String mogodbProps;
/***
* 配置读取的数据库url
*/
/**
* 时间节点结束节点
*/
private long end;
/**
* 时间节点开始节点
*/
private long nextstart;
private MogodbTask mogodbTask;
/**
* 定时的时间周期,每隔1个小时刷新一次。
*/
static final long timeClock = 60 * 60;
/**
* 设置定时更新的时间周期。每隔一个小时定时刷新一次。
*/
static final long timelimit = 60 * 60;
private StringBuffer stringBuffer = new StringBuffer();
/**
* 是否成功的标志位
*/
public static Boolean successFlag = null;
private boolean isRunable = true;
private String platformId;
IDataSyncService dataSyncService;
private ActiveMqManage activeMqManage;
private String urlMongoTemplate;
private String temptable;
/**
* Mogodb监听查询间隔:毫秒
*/
public MogodbTask(long start, long end, String platformId, String mogodbtableNames, String url) {
this.mogodbProps = mogodbtableNames;
this.end = end;
this.nextstart = start;
this.platformId = platformId;
this.dataSyncService = (IDataSyncService) SpringUtil.getBean("dataSyncService");
this.activeMqManage = (ActiveMqManage) SpringUtil.getBean("dataSyncMQ");
this.urlMongoTemplate = url;
}
@Override
public
1.change stream方式实现对mongodb的数据实时监控代码
最新推荐文章于 2024-08-01 15:26:19 发布
本文通过change stream方式详细介绍了如何实现对MongoDB数据库数据的实时监控,包括设置监听、处理变更事件等关键步骤,助你轻松掌握MongoDB的数据流监控技巧。
摘要由CSDN通过智能技术生成