mc_wave_form.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package dao
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/app/interface/main/dm2/model"
  6. "go-common/library/cache/memcache"
  7. "go-common/library/log"
  8. )
  9. const (
  10. _waveFormFmt = "wf_%d_%d"
  11. )
  12. func (d *Dao) waveFormKey(oid int64, tp int32) string {
  13. return fmt.Sprintf(_waveFormFmt, oid, tp)
  14. }
  15. // SetWaveFormCache .
  16. func (d *Dao) SetWaveFormCache(c context.Context, waveForm *model.WaveForm) (err error) {
  17. var (
  18. key = d.waveFormKey(waveForm.Oid, waveForm.Type)
  19. conn = d.subtitleMc.Get(c)
  20. item *memcache.Item
  21. )
  22. defer conn.Close()
  23. item = &memcache.Item{
  24. Key: key,
  25. Object: waveForm,
  26. Flags: memcache.FlagJSON | memcache.FlagGzip,
  27. Expiration: d.subtitleMcExpire,
  28. }
  29. if err = conn.Set(item); err != nil {
  30. log.Error("conn.Set(%v) error(%v)", item, err)
  31. }
  32. return
  33. }
  34. // WaveFormCache .
  35. func (d *Dao) WaveFormCache(c context.Context, oid int64, tp int32) (waveForm *model.WaveForm, err error) {
  36. var (
  37. item *memcache.Item
  38. conn = d.subtitleMc.Get(c)
  39. key = d.waveFormKey(oid, tp)
  40. )
  41. defer conn.Close()
  42. if item, err = conn.Get(key); err != nil {
  43. if err == memcache.ErrNotFound {
  44. err = nil
  45. } else {
  46. log.Error("memcache.Get(%s) error(%v)", key, err)
  47. }
  48. return
  49. }
  50. if err = conn.Scan(item, &waveForm); err != nil {
  51. log.Error("mc.Scan() error(%v)", err)
  52. }
  53. return
  54. }
  55. // DelWaveFormCache .
  56. func (d *Dao) DelWaveFormCache(c context.Context, oid int64, tp int32) (err error) {
  57. var (
  58. key = d.waveFormKey(oid, tp)
  59. conn = d.subtitleMc.Get(c)
  60. )
  61. defer conn.Close()
  62. if err = conn.Delete(key); err != nil {
  63. if err == memcache.ErrNotFound {
  64. err = nil
  65. } else {
  66. log.Error("memcache.Delete(%s) error(%v)", key, err)
  67. }
  68. }
  69. return
  70. }