1 Star 1 Fork 1

xiaoyutab / xgotool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
listen.go 1.14 KB
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2024-04-30 10:16 . 调整目录结构和依赖位置
package xnsq
import (
"time"
"gitee.com/xiaoyutab/xgotool/individual/xlog"
"github.com/nsqio/go-nsq"
)
// NSQ队列监听
// 导出函数,需要在入口处进行执行 `go xnsq.Listen()` 来进行同步监听
func Listen() {
// 若未开启NSQ队列
if _default.Get == "" || _default.GetTopic == "" {
return
}
configs := nsq.NewConfig()
configs.MaxInFlight = _default.GetMaxInFlight
consumer, err := nsq.NewConsumer(_default.GetTopic, _default.GetChannel, configs)
if err != nil {
xlog.Warning("NSQ队列配置失败", err)
return
}
defer consumer.Stop()
// 设置此使用者接收的消息的处理程序。可以调用多次。更多参数见 AddConcurrentHandlers.
consumer.AddHandler(&myMessageHandler{})
// 使用nsqlookupd可以发现nsqd实例。更多参数见ConnectToNSQD、ConnectToNSQ、ConnectToNSFLookupds。
err = consumer.ConnectToNSQLookupd(_default.Get)
if err != nil {
xlog.Warning("NSQ队列监听失败", err)
return
}
// 休眠,阻塞程序运行
for {
// 如果设置了停止就直接退出该程序,不再进行监听
if _stop {
_stop_ing = false
return
}
time.Sleep(time.Second)
}
}
Go
1
https://gitee.com/xiaoyutab/xgotool.git
git@gitee.com:xiaoyutab/xgotool.git
xiaoyutab
xgotool
xgotool
v0.3.9

搜索帮助

53164aa7 5694891 3bd8fe86 5694891