dao.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package dao
  2. import (
  3. "context"
  4. )
  5. // Dao dao.
  6. type Dao struct {
  7. // db *sql.DB
  8. // redis *redis.Pool
  9. // redisExpire int32
  10. // mc *memcache.Pool
  11. // mcExpire int32
  12. }
  13. // func checkErr(err error) {
  14. // if err != nil {
  15. // panic(err)
  16. // }
  17. // }
  18. // New new a dao and return.
  19. func New() (dao *Dao) {
  20. // var (
  21. // dc struct {
  22. // Demo *sql.Config
  23. // }
  24. // rc struct {
  25. // Demo *redis.Config
  26. // DemoExpire xtime.Duration
  27. // }
  28. // mc struct {
  29. // Demo *memcache.Config
  30. // DemoExpire xtime.Duration
  31. // }
  32. // )
  33. // checkErr(paladin.Get("mysql.toml").UnmarshalTOML(&dc))
  34. // checkErr(paladin.Get("redis.toml").UnmarshalTOML(&rc))
  35. // checkErr(paladin.Get("memcache.toml").UnmarshalTOML(&mc))
  36. dao = &Dao{
  37. // // mysql
  38. // db: sql.NewMySQL(dc.Demo),
  39. // // redis
  40. // redis: redis.NewPool(rc.Demo),
  41. // redisExpire: int32(time.Duration(rc.DemoExpire) / time.Second),
  42. // // memcache
  43. // mc: memcache.NewPool(mc.Demo),
  44. // mcExpire: int32(time.Duration(mc.DemoExpire) / time.Second),
  45. }
  46. return
  47. }
  48. // Close close the resource.
  49. func (d *Dao) Close() {
  50. // d.mc.Close()
  51. // d.redis.Close()
  52. // d.db.Close()
  53. }
  54. // Ping ping the resource.
  55. func (d *Dao) Ping(ctx context.Context) (err error) {
  56. // if err = d.pingMC(ctx); err != nil {
  57. // return
  58. // }
  59. // if err = d.pingRedis(ctx); err != nil {
  60. // return
  61. // }
  62. // return d.db.Ping(ctx)
  63. return nil
  64. }
  65. // func (d *Dao) pingMC(ctx context.Context) (err error) {
  66. // conn := d.mc.Get(ctx)
  67. // defer conn.Close()
  68. // if err = conn.Set(&memcache.Item{Key: "ping", Value: []byte("pong"), Expiration: 0}); err != nil {
  69. // log.Error("conn.Set(PING) error(%v)", err)
  70. // }
  71. // return
  72. // }
  73. // func (d *Dao) pingRedis(ctx context.Context) (err error) {
  74. // conn := d.redis.Get(ctx)
  75. // defer conn.Close()
  76. // if _, err = conn.Do("SET", "ping", "pong"); err != nil {
  77. // log.Error("conn.Set(PING) error(%v)", err)
  78. // }
  79. // return
  80. // }