memcache.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package dao
  2. import (
  3. "context"
  4. "go-common/app/interface/main/laser/model"
  5. "go-common/library/cache/memcache"
  6. "go-common/library/log"
  7. "strconv"
  8. )
  9. const (
  10. _prefix = "taskinfo_"
  11. )
  12. func keyTaskInfo(mid int64) string {
  13. return _prefix + strconv.FormatInt(mid, 10)
  14. }
  15. // TaskInfoCache get taskInfo cache
  16. func (d *Dao) TaskInfoCache(c context.Context, mid int64) (ti *model.TaskInfo, err error) {
  17. var (
  18. conn = d.mc.Get(c)
  19. r *memcache.Item
  20. )
  21. defer conn.Close()
  22. r, err = conn.Get(keyTaskInfo(mid))
  23. if err != nil {
  24. if err == memcache.ErrNotFound {
  25. err = nil
  26. } else {
  27. log.Error("conn Get2(%d) error(%v)", mid, err)
  28. }
  29. return
  30. }
  31. if err = conn.Scan(r, &ti); err != nil {
  32. log.Error("json.Unmarshal(%s) error(%v)", r.Value, err)
  33. ti = nil
  34. }
  35. return
  36. }
  37. // AddTaskInfoCache add taskInfo cache
  38. func (d *Dao) AddTaskInfoCache(c context.Context, mid int64, ti *model.TaskInfo) (err error) {
  39. var (
  40. key = keyTaskInfo(mid)
  41. )
  42. conn := d.mc.Get(c)
  43. defer conn.Close()
  44. if err = conn.Set(&memcache.Item{Key: key, Object: ti, Flags: memcache.FlagJSON, Expiration: d.mcExpire}); err != nil {
  45. log.Error("memcache.Set(%v) error(%v)", key, err)
  46. }
  47. return
  48. }
  49. // RemoveTaskInfoCache remove taskInfo cache
  50. func (d *Dao) RemoveTaskInfoCache(c context.Context, mid int64) (err error) {
  51. var (
  52. key = keyTaskInfo(mid)
  53. )
  54. conn := d.mc.Get(c)
  55. defer conn.Close()
  56. if err = conn.Delete(key); err != nil {
  57. log.Error("memcache.Delete(%v) error(%v)", key, err)
  58. }
  59. return
  60. }