Text to Speech Speech to Text

mysql.go 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package mysql
  2. import (
  3. "time"
  4. "git.links123.net/Slate/CorpusAI/config"
  5. "git.links123.net/Slate/CorpusAI/service/api"
  6. "github.com/sirupsen/logrus"
  7. "upper.io/db.v3/lib/sqlbuilder"
  8. "upper.io/db.v3/mysql"
  9. )
  10. var (
  11. db_session sqlbuilder.Database
  12. )
  13. // Init 初始化数据库
  14. func Init() {
  15. dbConfig := config.C.DB
  16. settings := mysql.ConnectionURL{
  17. Host: dbConfig.Host,
  18. Database: dbConfig.Name,
  19. User: dbConfig.User,
  20. Password: dbConfig.Password,
  21. }
  22. var err error
  23. if db_session, err = mysql.Open(settings); err != nil {
  24. logrus.WithField("dsn", settings.String()).Info("connect db failed")
  25. panic(err)
  26. }
  27. logrus.WithField("dsn", settings.String()).Info("connect db success")
  28. db_session.SetMaxIdleConns(dbConfig.MaxIdleConnections)
  29. db_session.SetMaxOpenConns(dbConfig.MaxOpenConnections)
  30. for {
  31. if err := db_session.Ping(); err != nil {
  32. logrus.Warn("waiting for mysql server start...")
  33. time.Sleep(3 * time.Second)
  34. continue
  35. }
  36. logrus.Info("connect to mysql successful")
  37. break
  38. }
  39. if config.C.App.Debug {
  40. db_session.SetLogging(true)
  41. }
  42. }
  43. // Close 在程序退出时关闭连接
  44. func Close() {
  45. if db_session != nil {
  46. err := db_session.Close()
  47. if err != nil {
  48. logrus.Errorf("error close mysql connection: %s", err.Error())
  49. return
  50. }
  51. }
  52. logrus.Info("mysql connection close")
  53. }
  54. func paging(selector sqlbuilder.Selector, cp api.CommonParams) sqlbuilder.Paginator {
  55. return selector.Paginate(uint(cp.Limit)).Page(uint(cp.Page))
  56. }