save.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import "time"
  3. var ( //项目
  4. saveProjectBaseInfoPool = make(chan map[string]interface{}, 5000)
  5. saveProjectBaseInfoSp = make(chan bool, 1)
  6. dwd_f_bid_project_baseinfo_field = []string{"s_projectid", "s_projectcode", "s_projectname", "s_projectname", "s_area_code", "s_city_code", "s_district_code", "s_bidstatus", "s_buyer_id", "s_agency_id", "s_bidtype", "d_bidopentime", "d_firsttime", "d_zbtime", "d_jgtime", "d_lasttime", "f_budget", "f_bidamount", "i_multipackage", "d_updatetime", "d_createtime"}
  7. )
  8. //项目基础信息
  9. func dwd_f_bid_project_baseinfo1() {
  10. arru := make([]map[string]interface{}, saveSize)
  11. indexu := 0
  12. for {
  13. select {
  14. case v := <-saveProjectBaseInfoPool:
  15. arru[indexu] = v
  16. indexu++
  17. if indexu == saveSize {
  18. saveProjectBaseInfoSp <- true
  19. go func(arru []map[string]interface{}) {
  20. defer func() {
  21. <-saveProjectBaseInfoSp
  22. }()
  23. MysqlTool.InsertBulk("dwd_f_bid_project_baseinfo", dwd_f_bid_project_baseinfo_field, arru...)
  24. }(arru)
  25. arru = make([]map[string]interface{}, saveSize)
  26. indexu = 0
  27. }
  28. case <-time.After(1000 * time.Millisecond):
  29. if indexu > 0 {
  30. saveProjectBaseInfoSp <- true
  31. go func(arru []map[string]interface{}) {
  32. defer func() {
  33. <-saveProjectBaseInfoSp
  34. }()
  35. MysqlTool.InsertBulk("dwd_f_bid_project_baseinfo", BaseField, arru...)
  36. }(arru[:indexu])
  37. arru = make([]map[string]interface{}, saveSize)
  38. indexu = 0
  39. }
  40. }
  41. }
  42. }