1.change stream方式实现对mongodb的数据实时监控代码

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值