Text to Speech Speech to Text

cache.go 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package cache
  2. import (
  3. "sync"
  4. "time"
  5. "git.links123.net/Slate/CorpusAI/config"
  6. "git.links123.net/links123.com/pkg/middleware/auth"
  7. "github.com/go-redis/redis"
  8. "github.com/sirupsen/logrus"
  9. )
  10. var (
  11. client *redis.Client
  12. session auth.Session
  13. once = &sync.Once{}
  14. )
  15. // Init 初始化缓存
  16. func Init() {
  17. once.Do(func() {
  18. redisConfig := config.C.Redis
  19. client = redis.NewClient(&redis.Options{
  20. Addr: redisConfig.Address,
  21. Password: redisConfig.Password,
  22. PoolSize: redisConfig.PoolSize,
  23. })
  24. for {
  25. if err := client.Ping().Err(); err != nil {
  26. logrus.Warn("waiting for redis server start...")
  27. time.Sleep(3 * time.Second)
  28. continue
  29. }
  30. logrus.Info("connect to redis successful")
  31. break
  32. }
  33. if config.C.App.Debug {
  34. session = auth.NewDebugSessionStore()
  35. } else {
  36. session = auth.NewRedisSessionStore(redisConfig.Address, redisConfig.Password)
  37. }
  38. })
  39. }
  40. // Close 退出时关闭链接
  41. func Close() {
  42. if client != nil {
  43. err := client.Close()
  44. if err != nil {
  45. logrus.Errorf("close redis connection error: %s", err.Error())
  46. return
  47. }
  48. logrus.Info("redis connection closed")
  49. }
  50. }