func sendMessages(c *stompngo.Connection, q string, n int, k int) { var error error // Send eh := stompngo.Headers{"destination", q} // Extra headers for i := 1; i <= n; i++ { m := q + " gostomp message #" + strconv.Itoa(i) if printMsgs { fmt.Println("msg:", m) } error = c.Send(eh, m) if error != nil { log.Fatalf("send error: %v\n", error) } // time.Sleep(1e9 / 100) // Simulate message build } error = c.Send(eh, "***EOF*** "+q) if error != nil { log.Fatal(error) } wg.Done() }
func sendMessages(c *stompngo.Connection, q string, n int, k int) { var error error ks := fmt.Sprintf("%d", k) // Send eh := stompngo.Headers{"destination", q} // Extra headers for i := 1; i <= n; i++ { m := ks + " gostomp message #" + strconv.Itoa(i) if printMsgs { log.Println("Send:", q, " / ", m) } error = c.Send(eh, m) if error != nil { log.Fatal(error) } // d := time.Duration(getStagger(1e9/20, 1e9/10)) time.Sleep(d) } error = c.Send(eh, "***EOF***") if error != nil { log.Fatal(error) } wgsend.Done() }
// Send messages to a particular queue func sender(conn *stompngo.Connection, qn, nmsgs int) { ltag := tag + "-sender" qns := fmt.Sprintf("%d", qn) // queue number d := sngecomm.Dest() + "." + qns ll.Printf("%stag:%s connsess:%s starts qn:%d nmsgs:%d d:%s\n", exampid, ltag, conn.Session(), qn, nmsgs, d) // wh := stompngo.Headers{"destination", d, "qnum", qns} // send Headers if senv.Persistent() { wh = wh.Add("persistent", "true") } // tmr := time.NewTimer(100 * time.Hour) // Send loop for i := 1; i <= nmsgs; i++ { si := fmt.Sprintf("%d", i) sh := append(wh, "msgnum", si) // Generate a message to send ............... ll.Printf("%stag:%s connsess:%s message qns:%s si:%s\n", exampid, ltag, conn.Session(), qns, si) e := conn.Send(sh, string(sngecomm.Partial())) if e != nil { ll.Fatalf("%stag:%s connsess:%s send_error qnum:%v error:%v", exampid, ltag, conn.Session(), qn, e.Error()) // Handle this ...... } if i == nmsgs { break } if sw { runtime.Gosched() // yield for this example dt := time.Duration(sngecomm.ValueBetween(min, max, sf)) ll.Printf("%stag:%s connsess:%s send_stagger dt:%v qns:%s\n", exampid, ltag, conn.Session(), dt, qns) tmr.Reset(dt) _ = <-tmr.C } } // Sending is done ll.Printf("%stag:%s connsess:%s sender_ends qn:%d nmsgs:%d\n", exampid, ltag, conn.Session(), qn, nmsgs) wgs.Done() }
/* runSender sends all messages to a specified queue. */ func runSender(conn *stompngo.Connection, qns string) { ltag := tag + "-runsender" d := sngecomm.Dest() + "." + qns id := stompngo.Uuid() // A unique sender id ll.Printf("%stag:%s connsess:%s start id:%s dest:%s\n", exampid, ltag, conn.Session(), id, d) wh := stompngo.Headers{"destination", d, "senderId", id, "qnum", qns} // basic send Headers if senv.Persistent() { wh = wh.Add("persistent", "true") } tmr := time.NewTimer(100 * time.Hour) nmsgs := senv.Nmsgs() for mc := 1; mc <= nmsgs; mc++ { sh := append(wh, "msgnum", fmt.Sprintf("%d", mc)) // Generate a message to send ............... ll.Printf("%stag:%s connsess:%s send id:%s qns:%s mc:%d\n", exampid, ltag, conn.Session(), id, qns, mc) e := conn.Send(sh, string(sngecomm.Partial())) if e != nil { ll.Fatalf("%stag:%s connsess:%s send_error qns:%v error:%v", exampid, ltag, conn.Session(), qns, e.Error()) // Handle this ...... } if mc == nmsgs { break } if sw { dt := time.Duration(sngecomm.ValueBetween(min, max, sf)) ll.Printf("%stag:%s connsess:%s send_stagger dt:%v qns:%s mc:%d\n", exampid, ltag, conn.Session(), dt, qns, mc) tmr.Reset(dt) _ = <-tmr.C runtime.Gosched() } } ll.Printf("%stag:%s connsess:%s end id:%s dest:%s\n", exampid, ltag, conn.Session(), id, d) // wgs.Done() }
func sendMessages(conn *stompngo.Connection, qnum int, nc net.Conn) { ltag := tag + "-sendmessages" qns := fmt.Sprintf("%d", qnum) // queue number d := sngecomm.Dest() + "." + qns ll.Printf("%stag:%s connsess:%s start d:%s qnum:%d\n", exampid, ltag, conn.Session(), d, qnum) wh := stompngo.Headers{"destination", d, "qnum", qns} // send Headers if senv.Persistent() { wh = wh.Add("persistent", "true") } // tmr := time.NewTimer(100 * time.Hour) // Send messages for mc := 1; mc <= nmsgs; mc++ { mcs := fmt.Sprintf("%d", mc) sh := append(wh, "msgnum", mcs) // Generate a message to send ............... ll.Printf("%stag:%s connsess:%s message mc:%d qnum:%d\n", exampid, ltag, conn.Session(), mc, qnum) e := conn.Send(sh, string(sngecomm.Partial())) if e != nil { ll.Fatalf("%stag:%s connsess:%s send_error qnum:%v error:%v", exampid, ltag, conn.Session(), qnum, e.Error()) // Handle this ...... } if mc == nmsgs { break } if sw { runtime.Gosched() // yield for this example dt := time.Duration(sngecomm.ValueBetween(min, max, sf)) ll.Printf("%stag:%s connsess:%s send_stagger dt:%v qnum:%s mc:%d\n", exampid, ltag, conn.Session(), dt, qnum, mc) tmr.Reset(dt) _ = <-tmr.C } } }