main.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "log"
  6. "app.yhyue.com/moapp/jybase/common"
  7. elastic "app.yhyue.com/moapp/jybase/es"
  8. "app.yhyue.com/moapp/jybase/mongodb"
  9. "app.yhyue.com/moapp/jybase/mysql"
  10. "app.yhyue.com/moapp/jybase/redis"
  11. "github.com/robfig/cron"
  12. )
  13. var (
  14. cfg = new(Config)
  15. Mysql *mysql.Mysql
  16. TiDb *mysql.Mysql
  17. TiDbData *mysql.Mysql
  18. TiDbPower *mysql.Mysql
  19. ThirdParty *mysql.Mysql
  20. Jyactivities *mysql.Mysql
  21. Base *mysql.Mysql
  22. Es elastic.Es
  23. Mgo *mongodb.MongodbSim
  24. MgoLog *mongodb.MongodbSim
  25. MgoQyxy *mongodb.MongodbSim
  26. // configFile = flag.String("c", "./config.yaml", "配置文件")
  27. mode = flag.Int("m", 1, "")
  28. )
  29. func main() {
  30. flag.Parse()
  31. common.ReadConfig(&cfg)
  32. // _ = config.LoadConfigWithYaml(*configFile, cfg)
  33. log.Println("cfg ", cfg)
  34. TiDb = &mysql.Mysql{
  35. Address: cfg.TiDb.Host + ":" + fmt.Sprint(cfg.TiDb.Port),
  36. UserName: cfg.TiDb.User,
  37. PassWord: cfg.TiDb.Password,
  38. DBName: cfg.TiDb.Database,
  39. MaxOpenConns: cfg.TiDb.PollSize,
  40. MaxIdleConns: cfg.TiDb.MaxIdle,
  41. }
  42. TiDb.Init()
  43. TiDbData = &mysql.Mysql{
  44. Address: cfg.TiDbData.Host + ":" + fmt.Sprint(cfg.TiDbData.Port),
  45. UserName: cfg.TiDbData.User,
  46. PassWord: cfg.TiDbData.Password,
  47. DBName: cfg.TiDbData.Database,
  48. MaxOpenConns: cfg.TiDbData.PollSize,
  49. MaxIdleConns: cfg.TiDbData.MaxIdle,
  50. }
  51. TiDbData.Init()
  52. TiDbPower = &mysql.Mysql{
  53. Address: cfg.TiDbPower.Host + ":" + fmt.Sprint(cfg.TiDbPower.Port),
  54. UserName: cfg.TiDbPower.User,
  55. PassWord: cfg.TiDbPower.Password,
  56. DBName: cfg.TiDbPower.Database,
  57. MaxOpenConns: cfg.TiDbPower.PollSize,
  58. MaxIdleConns: cfg.TiDbPower.MaxIdle,
  59. }
  60. TiDbPower.Init()
  61. ThirdParty = &mysql.Mysql{
  62. Address: cfg.ThirdParty.Host + ":" + fmt.Sprint(cfg.ThirdParty.Port),
  63. UserName: cfg.ThirdParty.User,
  64. PassWord: cfg.ThirdParty.Password,
  65. DBName: cfg.ThirdParty.Database,
  66. MaxOpenConns: cfg.ThirdParty.PollSize,
  67. MaxIdleConns: cfg.ThirdParty.MaxIdle,
  68. }
  69. ThirdParty.Init()
  70. Jyactivities = &mysql.Mysql{
  71. Address: cfg.Jyactivities.Host + ":" + fmt.Sprint(cfg.Jyactivities.Port),
  72. UserName: cfg.Jyactivities.User,
  73. PassWord: cfg.Jyactivities.Password,
  74. DBName: cfg.Jyactivities.Database,
  75. MaxOpenConns: cfg.Jyactivities.PollSize,
  76. MaxIdleConns: cfg.Jyactivities.MaxIdle,
  77. }
  78. Jyactivities.Init()
  79. Mysql = &mysql.Mysql{
  80. Address: cfg.Mysql.Host + ":" + fmt.Sprint(cfg.Mysql.Port),
  81. UserName: cfg.Mysql.User,
  82. PassWord: cfg.Mysql.Password,
  83. DBName: cfg.Mysql.Database,
  84. MaxOpenConns: cfg.Mysql.PollSize,
  85. MaxIdleConns: cfg.Mysql.MaxIdle,
  86. }
  87. Mysql.Init()
  88. Base = &mysql.Mysql{
  89. Address: cfg.BaseService.Host + ":" + fmt.Sprint(cfg.BaseService.Port),
  90. UserName: cfg.BaseService.User,
  91. PassWord: cfg.BaseService.Password,
  92. DBName: cfg.BaseService.Database,
  93. MaxOpenConns: cfg.BaseService.PollSize,
  94. MaxIdleConns: cfg.BaseService.MaxIdle,
  95. }
  96. Base.Init()
  97. Es = elastic.NewEs(cfg.Es.Version, cfg.Es.Address, cfg.Es.DbSize, cfg.Es.UserName, cfg.Es.Password)
  98. redis.InitRedis(cfg.RedisServer)
  99. Mgo = mongodb.NewMgo(cfg.Mgo.Address, cfg.Mgo.DbName, cfg.Mgo.DbSize)
  100. MgoLog = mongodb.NewMgoWithUser(cfg.MgoLog.Address, cfg.MgoLog.DbName, cfg.MgoLog.User, cfg.MgoLog.Password, cfg.MgoLog.DbSize)
  101. MgoQyxy = mongodb.NewMgoWithUser(cfg.MgoQyxy.Address, cfg.MgoQyxy.DbName, cfg.MgoQyxy.User, cfg.MgoQyxy.Password, cfg.MgoQyxy.DbSize)
  102. InitArea()
  103. if *mode == 1 {
  104. // 未支付订单 30分钟一次
  105. orders()
  106. a := cron.New()
  107. a.AddFunc(cfg.CornExp1, func() {
  108. orders()
  109. messageSync()
  110. })
  111. a.Start()
  112. // 新注册用户 5分钟一次
  113. // users()
  114. // saleLeads()
  115. b := cron.New()
  116. b.AddFunc(cfg.CornExp2, func() {
  117. users()
  118. saleLeads()
  119. eventReg()
  120. })
  121. b.Start()
  122. // 每天8点30
  123. c := cron.New()
  124. c.AddFunc(cfg.CornExp3, func() {
  125. bigCustomer()
  126. users()
  127. saleLeads()
  128. })
  129. c.Start()
  130. // userbase()
  131. cc := cron.New()
  132. cc.AddFunc(cfg.CornExp1, func() {
  133. userbase()
  134. })
  135. cc.Start()
  136. // 用户标签一天一次
  137. // tagAllSync()
  138. d := cron.New()
  139. d.AddFunc(cfg.CornExp4, func() {
  140. tagAllSync()
  141. })
  142. d.Start()
  143. // 用户标签增量 5分钟一次
  144. everythingSync()
  145. ordersClue()
  146. kcSync()
  147. tagAddSync()
  148. e := cron.New()
  149. e.AddFunc(cfg.CornExp5, func() {
  150. everythingSync()
  151. ordersClue()
  152. kcSync()
  153. kcAuto()
  154. tagAddSync()
  155. })
  156. e.Start()
  157. //订阅增量 5分钟一次
  158. subscribeAddSync()
  159. f := cron.New()
  160. f.AddFunc(cfg.CornExp6, func() {
  161. subscribeAddSync()
  162. })
  163. f.Start()
  164. //自动进入任务车 1天一次
  165. // autoTask()
  166. // autoTasks()
  167. g := cron.New()
  168. g.AddFunc(cfg.CornExp7, func() {
  169. autoTask()
  170. autoTasks()
  171. })
  172. g.Start()
  173. h := cron.New()
  174. h.AddFunc(cfg.CornExp5, func() {
  175. autoExitSea()
  176. })
  177. h.Start()
  178. select {}
  179. } else if *mode == 23 {
  180. hlyjSync()
  181. } else if *mode == 24 {
  182. hlyjSync2()
  183. } else if *mode == 25 {
  184. hlyjSync3()
  185. } else if *mode == 26 {
  186. everythingSync()
  187. } else if *mode == 27 {
  188. bigCustomer()
  189. } else if *mode == 28 {
  190. clueSync1()
  191. } else if *mode == 29 {
  192. hlyjSync4()
  193. } else if *mode == 30 {
  194. lzhSync()
  195. }
  196. }