zoukankan      html  css  js  c++  java
  • 有感于微课数据同步多次 也与云上的不一致问题,大家的思路不清楚是主要原因。

    import requests
    import json
    # pip install requests
    
    scheme_id=105887
    start_num=0
    limit_count=20
    v_count=0
    
    # 同步的思路
    
    # 1、通过 CREATE TABLE A LIKE B 这样的方式,对要同步的微课表进行创建目标表的镜像,当然,可以是多张表,如果以前生成过, 建议采用 drop table if exists tablename 删除掉这些临时表
    
    # 2、通过云主机的接口,获取指定版本下的微课,记录进临时表,并记录通过接口同步下来的个数。
    
    # 3、对比临时表中的数据个数与通过脚本记录的同步接口提供的数据个数,是否完全一致,如果不一致,则为同步端异常,如果一致,表示同步端正确
    
    # 4、检查无误后,删除正式表中指定版本下东师理想提供的微课,然后将临时表中的微课数据执行  INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name
    
    # 5、执行预热等操作
    
    # 6、记录日志,本版本的ID,版本的名称,学科的名称,阿里云上同步下来的微课个数,实际插入的微课个数,是否匹配等,以备查验。
    
    while True :
        url='http://www.edusoa.com/dsideal_yy/wkds/getWkdsInfoByScheme?scheme_id='+str(scheme_id)+'&start_num='+str(start_num)+'&limit_count='+str(limit_count)
        r = requests.get(url)
        strA=str(r.content, encoding = "utf-8")
    
        if len(strA)>0:
            try:
                jsonA=json.loads(strA)
                for c in jsonA["wkdsList"]:
                    v_count = v_count + 1
                    start_num = int(c["ID"])
            except Exception as e:
                print(str(start_num)+'异常终止!')
                break
        else :
            break
        print('版本号'+str(scheme_id)+'   已同步微课数量:'+str(v_count)+'个!')

     同步数据,不加校验机制,就绝对不行的,切记切记!

  • 相关阅读:
    独立开发unity2d游戏的问答群
    使用闭包和lambda解决问题与常规方式解决问题的对比。
    说《深渊》
    AS3项目基础框架搭建分享robotlegs2 + starling1.3 + feathers1.1
    ArrayList源码学习
    在springMVC的controller中获取request,response对象的一个方法
    postgresql存储过程
    RabbitMq笔记
    dubbo学习笔记
    修改数据库的最大连接数
  • 原文地址:https://www.cnblogs.com/littlehb/p/7460657.html
Copyright © 2011-2022 走看看