千万数据接口同步

一、背景

公众号迁移,需要把A服务器的粉丝数据迁移到B的服务器,采取HTTP的方式传输 数据大概500多万 耗时大概25个小时


二、技术方案

调用端:A

  • 采用PHP脚本调用api
  • A服务器上传PHP脚本,从数据库每次查出1000条数据后调用api执行一次操作
  • 通过ID分段同时启用三个进程同时跑

接收端:B服务器

  • 采用thinkPHP5框架 通信加密采用openssl
  • 一次500条数据批量插入
  • 有抛错我会把错误的批次数据写入一个文件,把抛错信息写入另一个文件
  • 数据跑完后用脚本单独处理抛错的批次数据,逐条读出,逐条插入,如果插入再失败我会把插入的sql语句记录下来,我就可以手动分析这些SQL为什么会失败
//同步
public function friends()
        {
   
            $data2 = '';
            $data2 = @file_get_contents('php://input');
            $data3 = unserialize(base64_decode(openssl_decrypt($data2,'DES-ECB',self::PWD)));
            $data =  array_chunk($data3, self::LIMIT);
            try{
   
                if(!empty($data)){
   
                    $msg  = [];
                    foreach($data as $k => $v){
   
                        $erroMsg = '';
                        try{
   
                            Db::name('mp_friends')->insertAll($v);
                        }catch (\Exception $e){
   
                            $erroMsg = $e->getMessage()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值