wangxinyun1995 / blogs

用issue记录我的博客
0 stars 0 forks source link

ActiveRecord 用 bulk_insert 来批量插入数据,提高效率 #40

Open wangxinyun1995 opened 3 years ago

wangxinyun1995 commented 3 years ago

参考大神文章

wangxinyun1995 commented 3 years ago

如有需求,存在记录则更新,不存在,则创建

      values = self.batch_get_infos(users, key)  # 这儿用批量获取微信公众号关注者为例,以openid为判断,openid需要是唯一索引
      destination_columns = [:openid, :unionid, :nickname, :headimgurl, :subscribe, :response_info]
      self.bulk_insert(*destination_columns, update_duplicates: true) do |worker|
        values.each do |info|
          worker.add({openid: info["openid"], unionid: info["unionid"], nickname: info["nickname"], headimgurl: info["headimgurl"], subscribe: info["subscribe"], response_info: info.to_json})
        end
      end