首页 > 代码库 > nsg-0.3.0 API变更
nsg-0.3.0 API变更
NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。
nsg易于配置和部署,所有参考都通过命令行指定,编译好的二进制文件,没有其它依赖项。而且支持多种消息格式。
关于nsq的介绍看这里:http://www.oschina.net/translate/day-22-a-journey-into-nsq
官网:http://nsq.io/overview/quick_start.html
相比之前,API更好用了。
直接上代码。
package mainimport ( "github.com/bitly/go-nsq" "fmt" "time")type Handle struct{ msgchan chan *nsq.Message stop bool}func (h *Handle) HandleMsg(m *nsq.Message) error { if !stop{ h.msgchan <- m } return nil}func (h *Handle) Process(){ h.stop = false for{ select{ case m := <-h.msgchan: fmt.Println(string(m.Body)); case <-time.After(time.Second): if h.stop{ close(h.msgchan) return } } }}func (h *Handle) Stop(){ h.stop = true}func main(){ config := nsq.NewConfig() consumer, err := nsq.NewConsumer("test", "my", config) if err != nil{ panic(err) } h := new(Handle) consumer.AddHandler(nsq.HandlerFunc(h.HandleMsg)) h.msgchan = make(chan *nsq.Message, 1024) err = consumer.ConnectToNSQD("127.0.0.1:4150") if err != nil{ panic(err) } h.Process()}
nsg-0.3.0 API变更
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。