|
package main
import (
_
"bitbucket.org/miquella/mgodbc"
"database/sql"
"encoding/json"
"fmt"
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
"os"
"runtime"
"time"
)
type serverslice struct {
Servers []string
Sqlconn string
Start string
End string
}
type user struct {
UserName string "UserName"
Password string "Password"
Email string "Email"
Phone string "Phone"
SubTime time.Time "SubTime"
}
var config serverslice
var worker = runtime.NumCPU()
//初始化配置
func init() {
file, _ := os.Open("config.json")
defer file.Close()
buf := make([]byte, 2048)
n, _ := file.Read(buf)
err := json.Unmarshal(buf[:n], &config)
if err != nil {
panic(err)
fmt.Println(err)
}
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
var chanUser = make(chan user)
// 标记完成
dones := make(chan struct{}, worker)
go readmongodb(chanUser)
for i := 0; i < worker; i++ {
go writesql(chanUser, dones)
}
awaitForCloseResult(dones)
fmt.Println("完成")
}
//读取mongodb数据
func readmongodb(chanUser chan |
|
|