From e5249a1d2c507ac51689214680c00fcd1b3ab2ef Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 08 八月 2019 20:46:11 +0800
Subject: [PATCH] 测试多线程

---
 main.go |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/main.go b/main.go
index e0294ae..8ec5686 100644
--- a/main.go
+++ b/main.go
@@ -57,33 +57,41 @@
 
 	var msg []byte
 	var err error
-
+	msgChan := make(chan []byte,100)
 	for {
 		select {
 		// case <-ctx.Done():
 		// 	return
 		default:
 			msg, err = c.Recv()
+			msgChan <- msg
 			if err != nil {
 				logger.Info("recv error : ", err)
 				fmt.Println("recv error : ", err)
 				continue
 			} else {
-				arg := ruleserver.SdkDatas{}
-				//paramFormat(msg, &arg)
-				logger.Error()
-				start := time.Now()
-				m := paramFormat(msg, &arg)
-				// 杩涜瑙勫垯澶勭悊鍒ゆ柇(鎵撲笂瑙勫垯鐨勬爣绛�)
-				ruleserver.Judge(&arg,&m) // 鎶妔dkMessage浼犺繘鍘伙紝鏂逛究缂撳瓨鏁版嵁鏃舵嫾鍑轰竴涓猺esultMag
-				// 鎶奱rg閲岀殑鎵撶殑鏍囩鎷垮嚭鏉ョ粰m鍐嶅皝瑁呬竴灞�
-				resultMsg := ruleserver.ResultMsg{SdkMessage: &m, RuleResult: arg.RuleResult}
-				logger.Debug("姣斿瀹屾墍鐢ㄦ椂闂达細",time.Since(start))
-				// 灏嗘墦瀹屾爣绛剧殑鏁版嵁鎻掑叆鍒癊S
-				insertdata.InsertToEs(resultMsg)
-				logger.Debug("鎻掑叆瀹孍s鎵�鐢ㄦ椂闂达細",time.Since(start))
-				//浜嬩欢鎺ㄩ��
-				//go labelFilter.Judge(resultMsg)
+				wg := sync.WaitGroup{}
+				for msg := range msgChan {
+					wg.Add(1)
+					go func() {
+						logger.Debug("褰撳墠鏃堕棿鎴筹細",time.Now().Unix())
+						arg := ruleserver.SdkDatas{}
+						//paramFormat(msg, &arg)
+						start := time.Now()
+						m := paramFormat(msg, &arg)
+						// 杩涜瑙勫垯澶勭悊鍒ゆ柇(鎵撲笂瑙勫垯鐨勬爣绛�)
+						ruleserver.Judge(&arg,&m) // 鎶妔dkMessage浼犺繘鍘伙紝鏂逛究缂撳瓨鏁版嵁鏃舵嫾鍑轰竴涓猺esultMag
+						// 鎶奱rg閲岀殑鎵撶殑鏍囩鎷垮嚭鏉ョ粰m鍐嶅皝瑁呬竴灞�
+						resultMsg := ruleserver.ResultMsg{SdkMessage: &m, RuleResult: arg.RuleResult}
+						logger.Debug("瑙勫垯鍒ゆ柇瀹屾墍鐢ㄦ椂闂达細",time.Since(start))
+						// 灏嗘墦瀹屾爣绛剧殑鏁版嵁鎻掑叆鍒癊S
+						insertdata.InsertToEs(resultMsg)
+						logger.Debug("鎻掑叆瀹孍s鎵�鐢ㄦ椂闂达細",time.Since(start))
+						//浜嬩欢鎺ㄩ��
+						//go labelFilter.Judge(resultMsg)
+						wg.Done()
+					}()
+				}
 			}
 		}
 	}

--
Gitblit v1.8.0