mr923 发表于 2018-9-20 08:59:09

golang读取文件信息插入mongodb

package main  

  
import (
  
"encoding/csv"
  
"encoding/json"
  
"fmt"
  
"io"
  
"labix.org/v2/mgo"
  
"os"
  
"runtime"
  
)
  

  
/*
  
初始化配置
  
*/
  
func init() {
  
file, _ := os.Open("config.json")
  
buf := make([]byte, 2048)
  

  
n, _ := file.Read(buf)
  
fmt.Println(string(buf))
  
err := json.Unmarshal(buf[:n], &config)
  
if err != nil {
  
panic(err)
  
fmt.Println(err)
  
}
  
}
  

  
func main() {
  
runtime.GOMAXPROCS(runtime.NumCPU())
  
ImportPhoneInfo()
  
}
  

  
var config Config = Config{}
  

  
var worker = runtime.NumCPU()
  

  
//手机号码
  
type PhoneArea struct {
  
Phone   string "PhoneStart"
  
Area      string "Province"
  
City      string "City"
  
PhoneType string "PhoneType"
  
Code      string "Code"
  
}
  

  
//配置
  
type Config struct {
  
MongodbServer string
  
PhoneareaFile string
  
}
  

  
/*导入手机地理信息*/
  
func ImportPhoneInfo() {
  
var chanPhoneArea = make(chan PhoneArea)
  
// 标记完成
  
dones := make(chan struct{}, worker)
  

  
//读取文件信息
  
go addPhoneInfo(chanPhoneArea)
  
//插入mongodb
  
for i := 0; i < worker; i++ {
  
go doPhoneInfo(chanPhoneArea, dones)
  
}
  
//等待完成
  
awaitForCloseResult(dones)
  
fmt.Println("插入完毕")
  
}
  

  
/*
  
获取手机地理信息
  
*/
  
func addPhoneInfo(chanPhoneArea chan
页: [1]
查看完整版本: golang读取文件信息插入mongodb