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

flash型的著名网站带后台的网站模板下载

flash型的著名网站,带后台的网站模板下载,常熟网站建设公司,自己做的网站不备案不能访问吗简单的场景: 全量数据更新的情况下, 不在乎同一秒的请求都必须要成功, 只留下最新的更新请求数据 方案常用的是 1、数据库增加时间戳标识实现的乐观锁, 请求参数从源头带上微秒或者毫秒时间戳数据库存储, 然后在更新SQL语句上比较 (数据库的时间 参数传递的时间) 例如: A…简单的场景: 全量数据更新的情况下, 不在乎同一秒的请求都必须要成功, 只留下最新的更新请求数据 方案常用的是 1、数据库增加时间戳标识实现的乐观锁, 请求参数从源头带上微秒或者毫秒时间戳数据库存储, 然后在更新SQL语句上比较 (数据库的时间 参数传递的时间) 例如: ALTER TABLE mytable ADD accessTime DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) not null comment ‘请求源头时间(精度高),用于更新比较,解决并发修改’; UPDATE mytable SET updateTime ?, accessTime? WHERE statusId ? AND (IFNULL(accessTime, DATE_SUB(NOW(), INTERVAL 2 MINUTE)) ?); 复杂场景: 比如, 更新数据时候不是全量数据更新的方式, 可能是增量更新或者是覆盖部分更新; 场景: 比如MongoDB数据库, 文档中的某个object字段下有很多key:value, [图片] 一种并发情况: 并发A、B请求的时候, 他们的请求参数分别新增加不同的object字段下的Key, 或者是覆盖key, 这种新增Key的情况下需要并发的A、B请求都要成功, {properties.label:24.700000} {properties.thermostat.localTemp:24.800000} 另外一种情况: 并发A、B请求的时候, 他们的请求参数分别相同的object字段下的Key, 这种情况下需要并发的A、B请求只要最新请求能成功, 比如是A是先请求, B后请求, 那么就不能存在数据库最终存储的数据是A的; {properties.thermostat.localTemp:24.700000} {properties.thermostat.localTemp:24.800000} 方案 基于时间戳的乐观锁方式 判断keys的hash算法, 具体如下 请求参数源码增加一个时间戳, 透传到数据库存储; 根据请求测试里面的所有的keys , 按规则排序, 后进行hash算法计算出值, 然后插入到表里面; 后面更新判断hash算法是否一致, 不一致则判断为增量更新, 不用判断时间戳让其更新成功; 如果hash算法一致则判定为一致, 需要判断数据库时间戳 传递的时间戳; 并且这个判断不能在程序中实现, 比如先查询出来然后再比较, 后更新, 这种方式不是原子性的; 但是这种方法还是存在缺陷, 比如: A线程先请求 参数是: b2 {“fanMode”: “auto1”, “speedPercent”: 0} A 由于hash不同也能更新成功, 最终b2, 但是由于是B后请求是, 其实最终数据要b1 B线程后请求 参数是: b1 {“fanMode”: “auto2”} B先执行成功; 上面方法主要是解决相邻的2个间隔短的相同key参数请求伪代码: // 并发控制, 组装请求参数的TreeSet排序的keys-1 Set propertiesKeys new TreeSet(); for (Map.EntryString, Object entry : properties.entrySet()) { if (entry.getValue() null) { continue; } // 并发控制, 组装请求参数的keys-2 propertiesKeys.add(entry.getKey()); recursiveCalculationAddKeys(entry.getValue(), propertiesKeys); } // 并发控制, 获取keys_Md5-3 String string propertiesKeys.toString(); String md5DigestAsHex DigestUtils.md5DigestAsHex(string.getBytes(StandardCharsets.UTF_8)); deviceStatus.setPropertiesKeysMd5(md5DigestAsHex); request.setCompareAccessTime(Boolean.TRUE); public static void recursiveCalculationAddKeys(Object value, Set propertiesKeys) { if (Objects.isNull(value)){ return; } String type value.getClass().getSimpleName(); if (value instanceof Map || type.endsWith(“HashMap”)) { MapString, Object valueMap (MapString, Object) value; valueMap.forEach((k, v) - { propertiesKeys.add(k); // 递归处理所有是map的值 recursiveCalculationAddKeys(v, propertiesKeys); }); } // 处理是List的情况 if (value instanceof List || type.endsWith(ArrayList)){ListObject valueList (ListObject) value;valueList.forEach(el-{// 递归处理所有是map的值recursiveCalculationAddKeys(el, propertiesKeys);}); }} Criteria criteriaVar2 Criteria.where(“statusId”).is(oldDs.getStatusId()); Query queryVar2 new Query(criteriaVar2); if (compareAccessTime) { // md5比较存在情况下增加查询条件走单更新方法 criteriaVar2.orOperator( Criteria.where(“propertiesKeysMd5”).is(propertiesKeysMd5).and(“accessTime”).lt(accessTime), Criteria.where(“accessTime”).is(null), Criteria.where(“propertiesKeysMd5”).is(null), Criteria.where(“propertiesKeysMd5”).ne(propertiesKeysMd5) ); // 匹配空值 queryVar2 new Query(criteriaVar2); } mongoTemplate.findAndModify(queryVar2, update, Map.class, “…”) 1
http://www.hkea.cn/news/14283417/

相关文章:

  • 用动态和静态设计一个网站百度合作推广
  • 企业首次建设网站的策划方案域名访问过程会不会影响网站访问
  • wordpress添加指定文章谷歌seo好做吗
  • 网站作风建设年专栏郑州专业网站制作服务报价
  • 为什么百度搜不到我的网站南通网站建设排名公司
  • 龙岗外贸网站建设360手机助手
  • 电子商务网站建设主管的策划书怎么下载网站动态图片
  • 网站地址栏图标文字做网站会用到的代码单词
  • 江苏分销网站建设深圳网站建设响应式
  • 以网站名为后缀的邮箱怎么做著名的营销成功的案例
  • 网站注册理由艺术网站模板
  • 购买已备案网站做非法大连营销型网站
  • 网站建设毕业读书笔记做暖暖小视频网站
  • 做文案应该关注的网站推荐电子商务专业论文选题
  • 上海 顶尖 网站设计用layui做的网站
  • 电子商务网站建设含代码wordpress 注册邮件设置
  • 哪个网站可以做付邮免费送活动化工销售怎么做网站
  • 合肥最好的网站建设公司排名六安短视频优化费用
  • 网站百度权重没有数据seo排名啥意思
  • 企业网站排名技巧外汇自动跟单网站开发
  • 上海专业网站建设网wordpress 必须登陆
  • 如何做阿里巴巴的网站首页网站建设美工
  • 网站后端做留言板功能环球影城有存放行李的吗
  • 淄博市网站云平台装企工长网站开发
  • 深圳建网站哪个好网站群 主要功能
  • 廊坊网站建设方案wordpress社交登录
  • 罗湖商城网站设计公司泰安网站建设开发公司
  • 响应式企业网站制作公司成都专业的网站建站公司
  • 招远网站华为认证网络工程师怎么考
  • 南宁网站建设平台穿搭速递html网页制作代码