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

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

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

时间: 2024-12-15 17:37:25

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

服务 - Sersync数据同步详细教程

Sersync数据同步 一.rsync介绍 rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步. 它的特性如下: v 可以镜像保存整个目录树和文件系统. v 可以很容易做到保持原来文件的权限.时间.软硬链接等等. v 无须特殊权限即可安装. v 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压

Linux rsync数据同步命令解析

rsync命令 rsync有六种不同的工作模式: 1)拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式. rsync -a /data /backup 2)使用一个远程shell程序(如rsh.ssh)来实现将本地机器的内容拷贝到远程机器.当DST路径地址包含单个冒号":"分隔符时启动该模式. rsync -avz *.c foo:src 3)使用一个远程shell程序(如rsh.ssh)来实现将远程机器的内容拷贝到本地机器.

Redis进行数据同步

数据库中的数据一般都涉及到需要对数据进行备份的,这样可以保证数据的安全性,并且如果将一个主设备的数据同步到多个从设备上,允许用户访问数据时可以从多个从设备进行读取, 这样还可以缓解主设备的压力,Redis作为一个内存数据库同样可以进行数据的同步,并且操作及其简单,Redis进行数据同步,只需要在从服务器中加入一个配置参数slaveof 主服务器IP 主服务器Port即可实现,这样从服务器就会将主服务器上的数据同步到自己的数据库之中. 这个slaveof 参数既可以在配置文件中设置,也可以在启动从

rsync+inotify-tools实时数据同步配置实战

实验环境的准备: 源服务器:10.0.0.130 目标服务器:10.0.0.139 一.在源服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #编辑防火墙配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存,退出 setenforce 0  #立即生效 2.开启防火墙tcp 873端口(Rsync默认端口) vi /etc/sysc

Linux系统备份还原工具4(rsync/数据同步工具)

rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http://man.linuxde.net/rsync 说明: rsync命令 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsy

利用inotify和rsync实现数据同步

一.rsync是什么? 它是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与备份服务器数据同步.rsync也能实现中断后恢复传输.rsync支持增量备份.二.rsync有4种模式1.本地模式.2.远程shell模式3.查询模式4.C/S模式我们来安装rsync测试一下吧.安装很简单的tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make && make install rsync --he

利用otter实现跨机房数据同步

Otter: otter是阿里开源的一个分布式数据库同步系统,尤其是在跨机房数据库同步方面,有很强大的功能.它是基于数据库增量日志解析,实时将数据同步到本机房或跨机房的mysql/oracle数据库. 环境:(由于环境隐私原因,环境中使用的外部IP隐藏) 网络图: 实验环境: A机房(公司内网)<===>B机房(云服务环境内网) 数据源(mysql需开启binlog,binlog_format=ROW): Mysql_A:192.168.1.20:3306(外部IP:xx.xx.xx.xx:3

rsync数据同步

一.rsync介绍sync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程同步数据备份的工具.rsync是可以实现增量备份的工具.配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步.rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持).cp的本地拷贝.rm删除和"ls -l"显示文件列表等功能.但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp

第十六课----Rsync数据同步工具

1.1.1 什么是Rsync?Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作系统平台.1.1.2 Rsync简介? Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以