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


    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)+'个!')

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

  • 相关阅读:
    程序猿神吐槽,说出那些苦逼的日子!
    java设计模式演示样例
    DP Leetcode
    标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
    移动开发 Native APP、Hybrid APP和Web APP介绍
    Oracle cloud control 12c 的启动与关闭
    Ubuntu文件的复制、移动和删除命令
    Android中集成第三方库的方法和问题
    腾讯QQ企业邮箱POP3/SMTP设置
    又发现支付宝和淘宝的设计漏洞
  • 原文地址:https://www.cnblogs.com/littlehb/p/7460657.html
Copyright © 2020-2023  润新知