mg.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package common
  2. import (
  3. //"app.yhyue.com/moapp/jybase/mongodb"
  4. "context"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. "workTasks/common/mongodb"
  8. )
  9. type (
  10. mgConf struct {
  11. Address string `json:"address"`
  12. Size int `json:"size"`
  13. DbName string `json:"dbName"`
  14. ReplSet string `json:"replSet"`
  15. UserName string `json:"userName"`
  16. Password string `json:"password"`
  17. }
  18. mgObj struct {
  19. mgMap map[string]*mongodb.MongodbSim
  20. }
  21. )
  22. var (
  23. MG = &mgObj{
  24. mgMap: map[string]*mongodb.MongodbSim{},
  25. }
  26. )
  27. func init() {
  28. var (
  29. ctx = context.Background()
  30. )
  31. for key, val := range g.Cfg().MustGet(ctx, "mongodb").Map() {
  32. var cf mgConf
  33. if err := gconv.Struct(val, &cf); err != nil {
  34. g.Log().Errorf(ctx, "初始化mongodb %s出错", key)
  35. continue
  36. }
  37. mgo := &mongodb.MongodbSim{
  38. MongodbAddr: cf.Address,
  39. Size: cf.Size,
  40. DbName: cf.DbName,
  41. ReplSet: cf.ReplSet,
  42. UserName: cf.UserName,
  43. Password: cf.Password,
  44. }
  45. mgo.InitPool()
  46. MG.mgMap[key] = mgo
  47. g.Log().Infof(ctx, "初始化 mongodb %s 成功", key)
  48. }
  49. }
  50. func (t *mgObj) DB(alias ...string) *mongodb.MongodbSim {
  51. if len(alias) != 0 {
  52. for _, s := range alias {
  53. if esObj, ok := t.mgMap[s]; ok {
  54. return esObj
  55. }
  56. }
  57. }
  58. return t.mgMap["default"]
  59. }