1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package service
- import (
- "context"
- "go-common/app/admin/ep/merlin/conf"
- "go-common/app/admin/ep/merlin/dao"
- "go-common/library/sync/pipeline/fanout"
- "github.com/robfig/cron"
- )
- // Service struct
- type Service struct {
- c *conf.Config
- dao *dao.Dao
- cron *cron.Cron
- deviceChan *fanout.Fanout
- }
- // New init.
- func New(c *conf.Config) (s *Service) {
- s = &Service{
- c: c,
- dao: dao.New(c),
- deviceChan: fanout.New("deviceChan", fanout.Worker(1), fanout.Buffer(1024)),
- }
- scheduler := c.Scheduler
- if scheduler.Active {
- s.cron = cron.New()
- if err := s.cron.AddFunc(scheduler.GetExpiredMachinesTime, s.taskGetExpiredMachinesIntoTask); err != nil {
- panic(err)
- }
- if err := s.cron.AddFunc(scheduler.SendTaskMailMachinesWillExpiredTime, s.taskSendTaskMailMachinesWillExpired); err != nil {
- panic(err)
- }
- if err := s.cron.AddFunc(scheduler.DeleteExpiredMachinesInTask, s.taskDeleteExpiredMachines); err != nil {
- panic(err)
- }
- if err := s.cron.AddFunc(scheduler.CheckMachinesStatusInTask, s.taskMachineStatus); err != nil {
- panic(err)
- }
- if err := s.cron.AddFunc(scheduler.UpdateMobileDeviceInTask, s.taskSyncMobileDeviceList); err != nil {
- panic(err)
- }
- if err := s.cron.AddFunc(scheduler.UpdateSnapshotStatusInDoing, s.taskUpdateSnapshotStatusInDoing); err != nil {
- panic(err)
- }
- s.cron.Start()
- }
- return
- }
- // Close Service.
- func (s *Service) Close() {
- s.dao.Close()
- }
- // Ping check server ok.
- func (s *Service) Ping(c context.Context) (err error) {
- err = s.dao.Ping(c)
- return
- }
- // ConfVersion Conf Version.
- func (s *Service) ConfVersion(c context.Context) string {
- return conf.Conf.Version
- }
|