From d9b98e947f7b5aae886ff02ec27bd92aa34feaaa Mon Sep 17 00:00:00 2001
From: zhangmeng <zhangmeng@aiotlink.com>
Date: 星期一, 24 二月 2020 18:06:43 +0800
Subject: [PATCH] debug send/recv and add logs

---
 rpc/send.go |   42 ++++++++++++++++++++++++++++--------------
 1 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/rpc/send.go b/rpc/send.go
index 7111a43..c0d4b5c 100644
--- a/rpc/send.go
+++ b/rpc/send.go
@@ -12,7 +12,6 @@
 	ipcURL string
 	in     <-chan []byte
 	shm    bool
-	fn     func([]byte, bool)
 
 	fnLogger func(...interface{})
 }
@@ -23,7 +22,6 @@
 		ipcURL:   ipcURL,
 		in:       in,
 		shm:      shm,
-		fn:       nil,
 		fnLogger: fn,
 	}
 }
@@ -34,7 +32,7 @@
 	if s.shm {
 		s.runShm(ctx)
 	} else {
-		i := deliver.NewClient(mode, s.ipcURL)
+		i := deliver.NewServer(deliver.PushPull, s.ipcURL)
 		if i == nil {
 			s.fnLogger("sender 2 pubsub nng create error")
 			return
@@ -55,18 +53,27 @@
 			if s.shm {
 				if err := i.Send(d); err != nil {
 					i.Close()
-					s.fnLogger("ANALYSIS SENDER ERROR: ", err)
+					s.fnLogger("SENDER To:", s.ipcURL, " ERROR: ", err)
 
 					c, err := deliver.NewServerWithError(deliver.Shm, s.ipcURL)
+				loopS:
 					for {
-						if err == nil {
-							break
+						select {
+						case <-ctx.Done():
+							return
+						default:
+							if err == nil {
+								break loopS
+							}
+							time.Sleep(time.Second)
+							c, err = deliver.NewServerWithError(deliver.Shm, s.ipcURL)
+							s.fnLogger("Sender CLIENT CREATE:", s.ipcURL, " FAILED : ", err)
 						}
-						time.Sleep(time.Second)
-						c, err = deliver.NewServerWithError(deliver.Shm, s.ipcURL)
-						s.fnLogger("CLIENT CREATE FAILED : ", err)
+
 					}
+
 					i = c
+					s.fnLogger("Sender Create Shm:", s.ipcURL)
 				} else {
 
 				}
@@ -86,13 +93,20 @@
 
 func (s *Sender) runShm(ctx context.Context) {
 	c, err := deliver.NewServerWithError(deliver.Shm, s.ipcURL)
+loopSBegin:
 	for {
-		if err == nil {
-			break
+		select {
+		case <-ctx.Done():
+			return
+		default:
+			if err == nil {
+				break loopSBegin
+			}
+			time.Sleep(1 * time.Second)
+			c, err = deliver.NewServerWithError(deliver.Shm, s.ipcURL)
+			s.fnLogger("Sender CLIENT CREATE:", s.ipcURL, "FAILED : ", err)
 		}
-		time.Sleep(1 * time.Second)
-		c, err = deliver.NewServerWithError(deliver.Shm, s.ipcURL)
-		s.fnLogger("CLIENT CREATE FAILED : ", err)
 	}
+
 	s.run(ctx, c)
 }

--
Gitblit v1.8.0