zhangmeng
2019-05-15 422ad69bbd7b715098b26f0626eb9b3f02cd7ded
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)