service.go 860 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package service
  2. import (
  3. "context"
  4. "go-common/app/admin/main/vip/conf"
  5. "go-common/app/admin/main/vip/dao"
  6. )
  7. var (
  8. _maxTipLen = 28
  9. _maxTitleLen = 36
  10. _maxContentLen = 36
  11. )
  12. // Service struct
  13. type Service struct {
  14. c *conf.Config
  15. dao *dao.Dao
  16. sendBcoin chan func()
  17. }
  18. // New init
  19. func New(c *conf.Config) (s *Service) {
  20. s = &Service{
  21. c: c,
  22. dao: dao.New(c),
  23. sendBcoin: make(chan func(), 10240),
  24. }
  25. go s.bcoinproc()
  26. return s
  27. }
  28. // Ping check db live
  29. func (s *Service) Ping(c context.Context) (err error) {
  30. return s.dao.Ping(c)
  31. }
  32. // func (s *Service) asyncBcoin(f func()) {
  33. // select {
  34. // case s.sendBcoin <- f:
  35. // default:
  36. // log.Warn("bcoinproc chan full")
  37. // }
  38. // }
  39. func (s *Service) bcoinproc() {
  40. for {
  41. f := <-s.sendBcoin
  42. f()
  43. }
  44. }
  45. // Close Service
  46. func (s *Service) Close() {
  47. s.dao.Close()
  48. }