当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
3 Star 1 Fork 1

Jason的雷哥/go-utils
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
publisher.go 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
package nsq
import (
"fmt"
"github.com/golang/glog"
nsq "github.com/nsqio/go-nsq"
)
// PublisherEnv nsq publisher init params
type PublisherEnv struct {
Address string
Config *nsq.Config
}
// Message nsq message publish object
type Message struct {
Topic string
Content []byte
}
// Publisher producer publish interface
type Publisher interface {
Init(*PublisherEnv) error // init function
Publish(*Message) error // publish function
}
type publish struct {
producer *nsq.Producer
}
// NewPublish publisher new function
func NewPublish() Publisher {
return new(publish)
}
func (p *publish) Init(env *PublisherEnv) error {
producer, err := nsq.NewProducer(env.Address, env.Config) // init producer
if err != nil {
glog.Fatalf("nsq connect fail: %v", err)
} else {
p.producer = producer
}
return err
}
func (p *publish) Publish(message *Message) error {
if p.producer != nil {
if message == nil || message.Topic == "" || len(message.Content) == 0 { // check if message is valid
return fmt.Errorf("message object is nil or message topic is nil or message content is nil")
}
err := p.producer.Publish(message.Topic, message.Content) // send message
return err
}
return fmt.Errorf("producer is nil")
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/jason_elva8325/go-utils.git
git@gitee.com:jason_elva8325/go-utils.git
jason_elva8325
go-utils
go-utils
v1.1.1

搜索帮助

0d507c66 1850385 C8b1a773 1850385