|
@@ -1,39 +0,0 @@
|
|
-package util
|
|
|
|
-
|
|
|
|
-import "time"
|
|
|
|
-
|
|
|
|
-type InfoFilterStruct struct {
|
|
|
|
- FType int //1:敏感词过滤;2:信息发布
|
|
|
|
- FId string //信息id
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-var InfoFilterC chan *InfoFilterStruct
|
|
|
|
-
|
|
|
|
-//初始化协程信息 守护协程数量 通道缓存大小
|
|
|
|
-func initFilter(processNum, chanLen int) {
|
|
|
|
- InfoFilterC = make(chan *InfoFilterStruct, chanLen)
|
|
|
|
- for i := 0; i < processNum; i++ {
|
|
|
|
- go infoHandle()
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//信息处理逻辑
|
|
|
|
-func infoHandle() {
|
|
|
|
- for {
|
|
|
|
- select {
|
|
|
|
- case data := <-InfoFilterC:
|
|
|
|
- switch data.FType {
|
|
|
|
- case 1:
|
|
|
|
- //信息入nsq 敏感词过滤通道失败
|
|
|
|
- case 2:
|
|
|
|
- //敏感词过滤成功 但敏感词结果未入库
|
|
|
|
- case 3:
|
|
|
|
- //信息入nsq 发布通道失败
|
|
|
|
- }
|
|
|
|
- case <-time.After(30 * time.Second):
|
|
|
|
- //半分钟未处理 休眠半小时后再处理
|
|
|
|
- time.Sleep(30 * 60 * time.Second)
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|