index_queue.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package services
  2. import (
  3. "fmt"
  4. "hongze/hongtao3_watch/cache"
  5. "path/filepath"
  6. "time"
  7. )
  8. // HandleFileUpdate 处理文件变化
  9. //func HandleFileUpdate() {
  10. // defer func() {
  11. // if err := recover(); err != nil {
  12. // fmt.Println("[AutoHandle]", err)
  13. // }
  14. // }()
  15. // for {
  16. // global.Rc.Brpop(utils.HANDLE_HONGTAO_EXCEL, func(b []byte) {
  17. // updateFilePath := string(b)
  18. // // 移除多余的双引号
  19. // updateFilePath = strings.Replace(updateFilePath, `"`, "", -1)
  20. // fileExt := filepath.Ext(updateFilePath)
  21. // //fmt.Println("fileExt:", fileExt)
  22. //
  23. // if fileExt != ".xlsx" && fileExt != ".xls" {
  24. // //fmt.Println("不是excel文件")
  25. // return
  26. // }
  27. // // 读取excel内容并操作入库
  28. // ReadExcel(updateFilePath)
  29. // })
  30. // }
  31. //
  32. //}
  33. //// HandleRefreshExcel 处理excel刷新(实际去调用刷新)
  34. //func HandleRefreshExcel() {
  35. // defer func() {
  36. // if err := recover(); err != nil {
  37. // fmt.Println("[AutoRefresh]", err)
  38. // }
  39. // }()
  40. // for {
  41. // global.Rc.Brpop(utils.REFRESH_HONGTAO_EXCEL, func(b []byte) {
  42. // updateFilePath := string(b)
  43. // // 移除多余的双引号
  44. // updateFilePath = strings.Replace(updateFilePath, `"`, "", -1)
  45. // fileExt := filepath.Ext(updateFilePath)
  46. // //fmt.Println("fileExt:", fileExt)
  47. //
  48. // if fileExt != ".xlsx" && fileExt != ".xls" {
  49. // //fmt.Println("不是excel文件")
  50. // return
  51. // }
  52. // // 读取excel内容并操作入库
  53. // InvokeRefreshServer(updateFilePath)
  54. // })
  55. // }
  56. //
  57. //}
  58. // HandleRefreshExcel
  59. // @Description: 处理excel刷新(实际去调用刷新)
  60. // @author: Roc
  61. // @datetime2023-10-31 09:44:36
  62. // @param filePath string
  63. func HandleRefreshExcel() {
  64. for {
  65. el := cache.RefreshList.Front()
  66. // 如果没取到,那么就睡眠1s
  67. if el == nil {
  68. time.Sleep(1 * time.Second)
  69. continue
  70. }
  71. filePath := el.Value.(string)
  72. fileExt := filepath.Ext(filePath)
  73. if fileExt != ".xlsx" && fileExt != ".xls" {
  74. //fmt.Println("不是excel文件")
  75. return
  76. }
  77. InvokeRefreshServer(filePath)
  78. // 处理完后就移除该list
  79. cache.RefreshList.Remove(el)
  80. cache.FilePathMutex.Lock()
  81. delete(cache.FilePathMap, filePath)
  82. cache.FilePathMutex.Unlock()
  83. }
  84. }
  85. // HandleFileUpdate
  86. // @Description: 处理文件变化
  87. // @author: Roc
  88. // @datetime2023-10-31 09:52:23
  89. func HandleFileUpdate() {
  90. defer func() {
  91. if err := recover(); err != nil {
  92. fmt.Println("[AutoHandle]", err)
  93. }
  94. }()
  95. for {
  96. el := cache.HandleExcelList.Front()
  97. // 如果没取到,那么就睡眠1s
  98. if el == nil {
  99. time.Sleep(1 * time.Second)
  100. continue
  101. }
  102. filePath := el.Value.(string)
  103. fileExt := filepath.Ext(filePath)
  104. if fileExt != ".xlsx" && fileExt != ".xls" {
  105. //fmt.Println("不是excel文件")
  106. return
  107. }
  108. // 读取excel内容并操作入库
  109. ReadExcel(filePath)
  110. // 处理完后就移除该list
  111. cache.HandleExcelList.Remove(el)
  112. cache.HandleExcelFilePathMutex.Lock()
  113. delete(cache.HandleExcelFilePathMap, filePath)
  114. cache.HandleExcelFilePathMutex.Unlock()
  115. }
  116. }