go-common/app/job/main/appstatic/service/service.go
2019-04-22 18:49:16 +08:00

48 lines
908 B
Go

package service
import (
"context"
"sync"
"go-common/app/job/main/appstatic/conf"
"go-common/app/job/main/appstatic/dao/caldiff"
"go-common/app/job/main/appstatic/dao/push"
"go-common/library/log"
)
var ctx = context.Background()
// Service .
type Service struct {
c *conf.Config
dao *caldiff.Dao
pushDao *push.Dao
waiter *sync.WaitGroup
daoClosed bool
}
// New creates a Service instance.
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
dao: caldiff.New(c),
pushDao: push.New(c),
waiter: new(sync.WaitGroup),
}
s.waiter.Add(1)
go s.pushproc()
s.waiter.Add(1)
go s.calDiffproc()
return
}
// Close releases resources which owned by the Service instance.
func (s *Service) Close() (err error) {
log.Info("Close dao!")
s.daoClosed = true
log.Info("Wait waiter!")
s.waiter.Wait()
log.Info("appstatic-job has been closed.")
return
}