当前位置: 首页 > news >正文

小金县建设局网站wordpress下载站

小金县建设局网站,wordpress下载站,济南建筑公司,深圳自己做网站 服务器背景 最近在做Mongo上的表数据的迁移,原本应该是DBA要干的活,但是想着DBA排期比较长,加上我们开发的权限又非常有限,而且数据量又没有多少,就想着自己开发个小小的程序从旧实例上查,写到新实例上去算了。于…

背景

最近在做Mongo上的表数据的迁移,原本应该是DBA要干的活,但是想着DBA排期比较长,加上我们开发的权限又非常有限,而且数据量又没有多少,就想着自己开发个小小的程序从旧实例上查,写到新实例上去算了。于是就遇到了今天要分享的这个坑。

有问题代码

这个方法目的是查询表的所有数据,但是返回的结果实际会有问题,返回来的并非全量数据。原因是分好页之后,在去查询每页的数据的时候都重新再查询了下集合,然后再取分页数据,这个过程中有其他的线程也去修改这个集合的数据,集合数据变化了就会导致查询到的分页数据不正确。

   /*** 这个方法目的是查询表的所有数据,但是返回的结果实际会有问题,会出现数据不完整* 原因是分好页之后,查询每页的数据的时候都重新查询了集合,这个过程中有其他的线程也去修改这个集合的数据,* 集合数据变化了就会导致查询到的分页数据不正确。* @param dbName* @param tableName* @return*/public List<Document> queryCollections_Error(String dbName, String tableName) {List<Document> result = new ArrayList<>();long count = this.count(dbName, tableName);int pageSize = 1000;for (int idx = 0; idx < count; idx += pageSize) {result.addAll(this.queryCollectionsByPage(dbName, tableName, idx, pageSize));}return result;}

改正后的代码

改正后的代码,是只能保证了在程序开始运行的这一刻mongo表的快照的数据同步到新表是准确的,但是同步程序运行过程中如果表数据发生了变更,这部分数据是没有变更到新实例上面去的,这个大家需要注意。我们的业务是对内的业务,而且数据量不大,因此在同步的时候禁写掉这个服务中断时间可以接受。如果是不可接受服务中断,那么应该要考虑下全量+增量的方案。

    public List<Document> queryCollections(String dbName, String tableName) {List<Document> result = new ArrayList<>();MongoCollection<Document> mongoCollection = this.mongoClient.getDatabase(dbName).getCollection(tableName);long count = mongoCollection.countDocuments();int pageSize = 1000;for (int idx = 0; idx < count; idx += pageSize) {FindIterable<Document> iterable = mongoCollection.find().skip(idx).limit(pageSize);iterable.forEach(new Block<Document>() {@Overridepublic void apply(Document document) {result.add(JSON.parseObject(JSON.toJSONString(document), Document.class));}});}return result;}

完整代码

下载

http://www.yayakq.cn/news/278980/

相关文章:

  • 上海网站设计排名韩国网页设计欣赏
  • 营销型网站深度网合同无效的12种情形
  • 长沙网站制作哪胶州建设局网站
  • 湖南微信网站营销网络服务系统
  • 12380 举报网站建设做计算机网站
  • Html5移动网站个人网站注册流程
  • 高埗镇仿做网站软件研发和开发的区别
  • 做企业网站的优势动态手机网站
  • 建行国际互联网网站wordpress 外贸 开发
  • 班级网站设计模板南昌为来创意网站建设公司
  • 校园网站制度建设嘉兴网站排名
  • 企业网站的网络营销专业做写生的网站
  • 学校网站建设栏目有哪些html网站地图在线生成
  • 河北建设厅网站首页郑州百姓网二手货车
  • 网上网站建设教程猎头公司一般怎么收费的
  • 做网站有什么市场风险dede安装好后是模板怎么变成做好的网站
  • 怎么做自己的外卖网站数码网站建设维护
  • 个人可以做微信小程序吗?20条优化措施
  • linux网站服务器搭建天元建设集团有限公司欠薪问题
  • 网站名称和域名不一致网站规划与建设书
  • 化工网站开发在线购物网站建设
  • 亦庄公司做网站公司名字大全20000个四个字
  • 网站搭建策略与方法有哪些方面企业网站硬件设计
  • 设计接单网站大全wordpress小工具放入用户中心
  • 江西网站设计电话做项目搭建网站 构建数据库
  • 大型网站维护费一年多少二级域名网站优化
  • 外贸网站建设的重要性宝塔反代wordpress
  • 深圳黑马品牌网站设计制作公司网站大概多少钱
  • 康定网站建设公司做淘宝必备网站
  • 餐饮门户网站源码网站开发大学