Я пишу потребитель для RabbitMQ с Go, который должен приостановить потребление сообщений на некоторое время, а затем восстановиться, чтобы получать сообщения из очереди снова.При чтении документации https://godoc.org/github.com/streadway/amqp я не смог определить механизм, который мне нужно реализовать в моем коде.
Возможно ли это сделать?Есть пример?
Фрагмент моего кода:
rabbitMQMessages, err = ch.Consume(
"TestQ",
"testConsumer",
false,
true,
false,
false,
nil,
)
failOnError(err, "Failed to register a consumer")
forever := make(chan bool)
go func() {
select {
case d := <-rabbitMQMessages: // Cheking if messge was recieved
log.Printf("Received a message: %s", d.Body)
dotcount := bytes.Count(d.Body, []byte("."))
err = ch.Flow(false) // Returns error: Exception (540) Reason: "NOT_IMPLEMENTED - active=false
failOnError(err, "Failed to close channel")
t := time.Duration(dotcount)
time.Sleep(t * time.Second)
log.Printf("Done")
err = ch.Flow(true)
d.Ack(false)
default:
log.Println("Default section")
}
}()
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
<-forever