Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func main() {
- conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
- if err != nil {
- panic(err)
- }
- defer conn.Close()
- for _, q := range []string{"q1", "q2", "q3"} {
- go RunFetcher(q, conn, 3, 50)
- }
- select {}
- }
- func RunFetcher(queueName string, conn *amqp.Connection, workers, qos int) {
- ch, err := conn.Channel()
- if err != nil {
- log.Println(err.Error())
- return
- }
- ch.Qos(qos, 0, false)
- defer ch.Close()
- msgs, err := ch.Consume(queueName, "", false, false, false, false, nil)
- if err != nil {
- log.Println(err.Error())
- return
- }
- for index := 0; index < workers; index++ {
- go func() {
- for d := range msgs {
- // process message
- d.Ack(false)
- }
- }()
- }
- select {}
- }
Add Comment
Please, Sign In to add comment