index_cache.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package cache
  2. import (
  3. "container/list"
  4. "sync"
  5. )
  6. // AddIndexHandleExcel 添加处理excel变更队列
  7. // func AddIndexHandleExcelRedis(filePath string) bool {
  8. // if global.Re == nil {
  9. // if global.Rc != nil {
  10. // err := global.Rc.LPush(utils.HANDLE_HONGQI_EXCEL, filePath)
  11. // if err != nil {
  12. // fmt.Println("Add Index Handle Excel LPush Err:" + err.Error())
  13. // }
  14. // return true
  15. // }
  16. // return true
  17. // }
  18. // return false
  19. // }
  20. // // AddIndexRefreshExcel 添加刷新excel队列
  21. // func AddIndexRefreshExcel(filePath string) bool {
  22. // if global.Re == nil {
  23. // if global.Rc != nil {
  24. // err := global.Rc.LPush(utils.REFRESH_HONGQI_EXCEL, filePath)
  25. // if err != nil {
  26. // fmt.Println("Add Index Reresh Excel LPush Err:" + err.Error())
  27. // }
  28. // return true
  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. }