databus.go 716 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package unicom
  2. import (
  3. "context"
  4. "strconv"
  5. "go-common/app/interface/main/app-wall/model/unicom"
  6. log "go-common/library/log"
  7. )
  8. func (s *Service) addUserBindState(u *unicom.UserBindInfo) {
  9. select {
  10. case s.userBindCh <- u:
  11. default:
  12. log.Warn("add user bind state buffer is full")
  13. }
  14. }
  15. func (s *Service) userbindConsumer() {
  16. defer s.waiter.Done()
  17. for {
  18. i, ok := <-s.userBindCh
  19. if !ok {
  20. return
  21. }
  22. var (
  23. err error
  24. )
  25. switch v := i.(type) {
  26. case *unicom.UserBindInfo:
  27. if err = s.userbindPub.Send(context.TODO(), strconv.FormatInt(v.MID, 10), v); err != nil {
  28. log.Error("s.userbindSub.Send error(%v)", err)
  29. continue
  30. }
  31. log.Info("s.userbindSub.Send(%+v) success", v)
  32. }
  33. }
  34. }