bilibili-backup/app/job/main/card/service/service.go
2019-04-22 02:59:20 +00:00

65 lines
1.1 KiB
Go

package service
import (
"context"
"sync"
"go-common/app/job/main/card/conf"
"go-common/app/job/main/card/dao"
cardCli "go-common/app/service/main/card/api/grpc/v1"
"go-common/library/queue/databus"
)
const (
_updateAction = "update"
_tableUserInfo = "vip_user_info"
)
// Service struct
type Service struct {
c *conf.Config
waiter *sync.WaitGroup
dao *dao.Dao
vipConsumer *databus.Databus
// card service
cardRPC cardCli.CardClient
}
// New init
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
dao: dao.New(c),
waiter: new(sync.WaitGroup),
}
cardRPC, err := cardCli.NewClient(c.CardRPC)
if err != nil {
panic(err)
}
s.cardRPC = cardRPC
if c.Databus.Vip != nil {
s.vipConsumer = databus.New(c.Databus.Vip)
s.waiter.Add(1)
go s.vipchangeproc()
}
return s
}
// Ping Service
func (s *Service) Ping(c context.Context) (err error) {
return s.dao.Ping(c)
}
// Close Service
func (s *Service) Close() {
if s.c.Databus.Vip != nil {
s.vipConsumer.Close()
}
s.dao.Close()
}
// Wait wait all chan close
func (s *Service) Wait() {
s.waiter.Wait()
}