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  ```