@@ -48,6 +48,24 @@ func (c *Consumer) SubscribeMulti(queueNames ...string) error {
}
+ c.queues = queueNames
+ return nil
+}
+func (c *Consumer) HandlerMulti(process func(body []byte)) error {
+ for _, queue := range c.queues {
+ msgs, err := c.channel.Consume(queue, "", true, false, false, false, nil)
+ if err != nil {
+ println(err.Error())
+ return err
+ }
+ go func() {
+ for msg := range msgs {
+ func(msg amqp.Delivery) {
+ process(msg.Body)
+ }(msg)
+ }()
return nil
func (c *Consumer) Handler(queueName string, handler func(body []byte) error) error {
@@ -22,6 +22,7 @@ type (
Consumer struct {
conn *amqp.Connection
channel *amqp.Channel
+ queues []string
)