index_cache.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package cache
  2. import (
  3. "container/list"
  4. "sync"
  5. )
  6. // record more information
  7. //func IndexAutoRefresh(filePath string) bool {
  8. // if global.Re == nil {
  9. // if global.Rc != nil {
  10. // if global.Rc.SetNX(filePath, filePath, utils.GetTodayLastSecond()) {
  11. // err := global.Rc.LPush(utils.REFRESH_INDEX, filePath)
  12. // if err != nil {
  13. // fmt.Println("RecordNewLogs LPush Err:" + err.Error())
  14. // }
  15. // return true
  16. // }
  17. // }
  18. // return false
  19. // }
  20. // return false
  21. //}
  22. //func IndexAutoRefresh(filePath string) bool {
  23. // channel := `autoRefresh`
  24. // if global.Redis != nil {
  25. // err := global.Redis.Publish(context.TODO(), channel, filePath).Err()
  26. // if err != nil {
  27. // fmt.Println("Redis.Publish Err:" + err.Error())
  28. // return false
  29. // }
  30. // return true
  31. // }
  32. // return false
  33. //}
  34. // RefreshList 刷新的列表
  35. var RefreshList *list.List
  36. func init() {
  37. RefreshList = list.New()
  38. }
  39. var FilePathMap = make(map[string]int)
  40. // FilePathMutex 创建一个互斥锁
  41. var FilePathMutex sync.Mutex
  42. func IndexAutoRefresh(filePath string) {
  43. FilePathMutex.Lock()
  44. defer FilePathMutex.Unlock()
  45. // 如果存在该路径,那么就不记录入list
  46. if _, ok := FilePathMap[filePath]; ok {
  47. return
  48. }
  49. RefreshList.PushBack(filePath)
  50. FilePathMap[filePath] = 1
  51. return
  52. }