123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package logs
- import (
- "bp.jydev.jianyu360.cn/BP/jynsq/gonsq"
- "encoding/json"
- "log"
- )
- type NoticeConfig struct {
- isOpen bool //是否开启提示
- IsJsonEncode bool
- Addr, topic string
- Id, Title, Text string
- }
- type Notice struct {
- p *gonsq.Producer
- c NoticeConfig
- }
- func newNotice(c NoticeConfig) (n *Notice, err error) {
- n = &Notice{
- c: c,
- }
- var producer *gonsq.Producer
- if c.isOpen {
- producer, err = gonsq.NewProducer(c.Addr, c.topic, c.IsJsonEncode)
- if err != nil {
- return
- }
- n.p = producer
- }
- return
- }
- // SendWarnMsg 发送异常通知
- func (n *Notice) SendWarnMsg(detail map[string]interface{}) error {
- if n.p == nil {
- return nil
- }
- m := &gonsq.Msg{n.c.Id, n.c.Title, n.c.Text, detail}
- bs, err := json.Marshal(m)
- if err != nil {
- return err
- }
- log.Println("模拟发送信息----->", string(bs))
- return nil
- if err := n.p.Publish(bs); err != nil {
- log.Println("nsq连接失败", err)
- }
- return nil
- }
|