main.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "mongodb"
  4. "qfw/util"
  5. "sync"
  6. )
  7. var (
  8. Mgo, Mgo1 *mongodb.MongodbSim
  9. )
  10. func init() {
  11. //Mgo = &mongodb.MongodbSim{
  12. // MongodbAddr: "192.168.3.207:29092",
  13. // Size: 10,
  14. // DbName: "wjh",
  15. //}
  16. //Mgo.InitPool()
  17. Mgo1 = &mongodb.MongodbSim{
  18. MongodbAddr: "172.17.4.187:27082,172.17.145.163:27083", // 172.17.4.187:27082,172.17.145.163:27083
  19. Size: 15,
  20. DbName: "mixdata",
  21. UserName: "SJZY_RWESBid_Other",
  22. Password: "SJZY@O17t8herB3B",
  23. }
  24. Mgo1.InitPool()
  25. }
  26. func main() {
  27. sess := Mgo1.GetMgoConn()
  28. defer Mgo1.DestoryMongoConn(sess)
  29. ch := make(chan bool, 3)
  30. wg := &sync.WaitGroup{}
  31. field := map[string]interface{}{"bid_contracttype": -1, "bid_unittype": -1, "bid_projectname": -1, "bid_purchasing": -1, "bid_area": -1}
  32. query := sess.DB("mixdata").C("qyxy_tmp").Find(nil).Select(field).Iter()
  33. count, taskcount := 0, 0
  34. for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
  35. if count%50 == 0 {
  36. util.Debug("current ---", count, taskcount)
  37. }
  38. ch <- true
  39. wg.Add(1)
  40. go func(tmp map[string]interface{}) {
  41. defer func() {
  42. <-ch
  43. wg.Done()
  44. }()
  45. name := util.ObjToString(tmp["company_name"])
  46. info, _ := Mgo1.FindOne("qyxy_std", map[string]interface{}{"company_name": name})
  47. if len(*info) > 0 {
  48. Mgo1.Save("qyxy_oprd", *info)
  49. Mgo1.UpdateById("qyxy_tmp", tmp["_id"], map[string]interface{}{"$set": map[string]interface{}{"exist": true}})
  50. }
  51. }(tmp)
  52. tmp = make(map[string]interface{})
  53. }
  54. wg.Wait()
  55. util.Debug("over ---", count, taskcount)
  56. c := make(chan bool, 1)
  57. <-c
  58. }