| | |
| | | "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) |
| | | |
| | |
| | | // 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) { |
| | |
| | | |
| | | } |
| | | |
| | | 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) |