task.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package init_serve
  2. import (
  3. "eta_gn/eta_bridge/global"
  4. "eta_gn/eta_bridge/services"
  5. "eta_gn/eta_bridge/services/index_data"
  6. "github.com/robfig/cron/v3"
  7. )
  8. func InitTask() {
  9. // 如果配置文件中设置了停止任务,则不执行定时任务
  10. // 此功能用于多服务器部署时,定时任务只需一台服务器执行,其他服务器不执行;所以只需要一台服务器设置为false,其他服务器设置为true
  11. if global.CONFIG.Serve.IsStopTask {
  12. return
  13. }
  14. // 修复数据
  15. if global.CONFIG.Gn.DataHost != `` {
  16. index_data.FixData()
  17. }
  18. // 角色-用户-部门-分组同步
  19. go services.ListenSyncRole()
  20. go services.ListenSyncAdmin()
  21. go services.ListenSyncDepartment()
  22. go services.ListenSyncGroup()
  23. go services.ListenSyncUserEnRole()
  24. // 开始定时任务
  25. c := cron.New(cron.WithSeconds())
  26. // 定时清除指标更新日志
  27. if global.CONFIG.Mysql.Binlog.IsListen {
  28. _, err := c.AddFunc("0 0 0 * * *", index_data.DeleteBeforeTenDayLog)
  29. if err != nil {
  30. global.LOG.Error("DeleteBeforeTenDayLog err" + err.Error())
  31. }
  32. }
  33. c.Start()
  34. }