|
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 |
|
|