From 422ad69bbd7b715098b26f0626eb9b3f02cd7ded Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 五月 2019 16:59:13 +0800
Subject: [PATCH] update deliver

---
 main.go |   44 ++++++++++++++++++++++++++------------------
 1 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/main.go b/main.go
index 306c19c..8222aa6 100644
--- a/main.go
+++ b/main.go
@@ -4,19 +4,19 @@
 	"demo/deliver"
 	"fmt"
 	"os"
+	"os/signal"
 	"strconv"
 	"time"
+
+	"golang.org/x/sys/unix"
 )
 
 const dLen = 12 * 1024 * 1024
 
 var mode = deliver.PushPull
 
-func sender(url string) {
-
+func senderImpl(s deliver.Deliver) {
 	var err error
-
-	s := deliver.NewProducer(deliver.Mode(mode), url)
 
 	buf := make([]byte, dLen)
 
@@ -33,6 +33,17 @@
 		// time.Sleep(10 * time.Millisecond)
 	}
 
+}
+func sender(url string, args ...interface{}) {
+	s := deliver.NewProducer(deliver.Mode(mode), url, args...)
+
+	go senderImpl(s)
+
+	c := make(chan os.Signal, 1)
+	signal.Notify(c, os.Interrupt, os.Kill, unix.SIGTERM)
+	<-c
+
+	s.Close()
 }
 
 func recvImpl(url string, index int) {
@@ -82,26 +93,23 @@
 
 }
 
+func modeType(t string) {
+	if t == "pushpull" {
+		mode = deliver.PushPull
+	} else if t == "pubsub" {
+		mode = deliver.PubSub
+	} else if t == "pair" {
+		mode = deliver.Pair
+	}
+}
 func main() {
 	if len(os.Args) > 3 && os.Args[1] == "producer" {
-		if os.Args[2] == "pushpull" {
-			mode = deliver.PushPull
-		} else if os.Args[2] == "pubsub" {
-			mode = deliver.PubSub
-		} else if os.Args[2] == "pair" {
-			mode = deliver.Pair
-		}
+		modeType(os.Args[2])
 		sender(os.Args[3])
 		os.Exit(0)
 	}
 	if len(os.Args) > 3 && os.Args[1] == "consumer" {
-		if os.Args[2] == "pushpull" {
-			mode = deliver.PushPull
-		} else if os.Args[2] == "pubsub" {
-			mode = deliver.PubSub
-		} else if os.Args[2] == "pair" {
-			mode = deliver.Pair
-		}
+		modeType(os.Args[2])
 
 		reciever(os.Args[3], os.Args[4])
 		os.Exit(0)

--
Gitblit v1.8.0