github.com/aaabigfish/gopkg@v1.1.0/mq/nsq/README.md (about) 1 # nsq 2 3 队列库,基于 [go-nsq](github.com/nsqio/go-nsq) 封装,默认配置在项目conf/config.toml,配置模版如下: 4 ``` 5 [nsq] 6 Addr = "192.168.1.157:34234" 7 8 ``` 9 10 11 # 生产者示例 12 ```go 13 import "gitlab.ipcloud.cc/go/gopkg/mq/nsq" 14 15 // 创建写入链接池 16 // balancer平衡器,默认循环模式(RoundRobin)。在nsq集群上将消息路由到可用节点的逻辑,详见balancer.go 17 mq := nsq.NewProducerPool(addrs, balancer) 18 19 // 创建写入实例。 20 mq := nsq.NewProducer(addr) 21 22 23 // 创建生产者的时候指定了topic,可以使用Push方法,不需要指定topic值 24 mq.Push(body) 25 26 // body写入topic队列 27 mq.PushTopic("topic", body) 28 29 // 指定写入[]byte到某个队列,这里指定写入order_list1队列 30 mq.Publish("order_list1", []byte{"body"}) 31 32 // 指定写入[]byte到延迟队列,这里指定写入order_list1队列 33 mq.PublishDelay("order_list1", []byte{"body"}, time.Second) 34 35 ``` 36 37 38 # 消费者示例 39 ```go 40 import "gitlab.ipcloud.cc/go/gopkg/mq/nsq" 41 42 // 创建消费实例,可以传入nsq.Config配置 43 mq := nsq.NewConsumer(topic, channel, addrs, config) 44 45 // 增加处理函数 46 mq.AddHandler(hookFunc) 47 48 49 // 启动消费服务 50 mq.Run() 51 52 ```