提交 c9be7a02 authored 作者: gukai's avatar gukai

增加sls模块

上级 92bdace8
...@@ -15,7 +15,8 @@ const ( ...@@ -15,7 +15,8 @@ const (
//通知服务topic //通知服务topic
MsgOrderTopic = "messageOrder" MsgOrderTopic = "messageOrder"
MsgGoodsTopic = "messageGoods" MsgGoodsTopic = "messageGoods"
//通知下游topic
MsgSenderTopic = "messageSenders"
//云仓消息topic //云仓消息topic
MsgCloudTopic = "shopApi" MsgCloudTopic = "shopApi"
//通知消息系统topic //通知消息系统topic
...@@ -126,7 +127,7 @@ func (p *NsqProducer) NotifyMessage(notifyMessage *NotifyMessage) (err error) { ...@@ -126,7 +127,7 @@ func (p *NsqProducer) NotifyMessage(notifyMessage *NotifyMessage) (err error) {
err = p.msgValidator(notifyMessage) err = p.msgValidator(notifyMessage)
if logs.CheckErr(err,"NotifyMessage"){ if logs.CheckErr(err, "NotifyMessage") {
return return
} }
r := rand.New(rand.NewSource(time.Now().UnixNano())) r := rand.New(rand.NewSource(time.Now().UnixNano()))
......
...@@ -24,11 +24,13 @@ type NotifyServer struct { ...@@ -24,11 +24,13 @@ type NotifyServer struct {
//通知消息系统 //通知消息系统
type NotifyMessage struct { type NotifyMessage struct {
ID int `json:"id"` ID int `json:"id"`
Type interface{} `json:"type"` Type interface{} `json:"type"`
Data interface{} `json:"data"` Data interface{} `json:"data"`
URL string `json:"url"` URL string `json:"url"`
AppID int `json:"appID"` AppID int `json:"appID"`
PushTime int `json:"pushTime"`
Times int `json:"times"`
} }
type GoodsMsgData struct { type GoodsMsgData struct {
...@@ -36,8 +38,8 @@ type GoodsMsgData struct { ...@@ -36,8 +38,8 @@ type GoodsMsgData struct {
} }
type OrderMsgData struct { type OrderMsgData struct {
OrderSn string `json:"orderSn"` OrderSn string `json:"orderSn"`
Sku uint `json:"sku"` Sku uint `json:"sku"`
} }
type RefundMsgData struct { type RefundMsgData struct {
......
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"github.com/nsqio/go-nsq" "github.com/nsqio/go-nsq"
"gitlab.jxhh.com/stbz/library.git/logs" "gitlab.jxhh.com/stbz/library.git/logs"
"time"
) )
type NsqProducer struct { type NsqProducer struct {
...@@ -51,3 +52,21 @@ func (p *NsqProducer) Publish(topic string, message string) error { ...@@ -51,3 +52,21 @@ func (p *NsqProducer) Publish(topic string, message string) error {
return fmt.Errorf("producer is nil", err) return fmt.Errorf("producer is nil", err)
} }
//发布延迟消息
func (p *NsqProducer) DeferredPublish(topic string,delay time.Duration, message string) error {
logs.Info("topic",message)
var err error
if p.producer != nil {
if message == "" { //不能发布空串,否则会导致error
return nil
}
err = p.producer.DeferredPublish(topic,delay,[]byte(message)) // 发布消息
logs.CheckErr(err, "Nsq Publish")
return err
}
return fmt.Errorf("producer is nil", err)
}
package sls
import (
"github.com/aliyun/aliyun-log-go-sdk/producer"
"github.com/gogf/gf/frame/g"
"gitlab.jxhh.com/stbz/library.git/logs"
"time"
)
const (
ProjectDefault = "order"
ProjectDis = "dis"
ProjectApi = "api-system"
ProjectMessage = "message-system"
LogstoreDefault = "post_msg"
LogstoreOrder = "orders"
LogstoreDefaultErr = "go_error"
LogstoreDisErr = "dis_err"
LogstoreMessage = "push_msg"
TopicDefault = "topic"
TopicCloud = "shopApi"
)
var producerInstance *producer.Producer
func Init() {
producerConfig := producer.GetDefaultProducerConfig()
producerConfig.Endpoint = g.Cfg().GetString("aliLog.Endpoint")
producerConfig.AccessKeyID = g.Cfg().GetString("aliLog.AccessKeyID")
producerConfig.AccessKeySecret = g.Cfg().GetString("aliLog.AccessKeySecret")
producerInstance = producer.InitProducer(producerConfig)
producerInstance.Start()
}
func Createsls(project, logstore, topic,realIP string, addLogMap map[string]string) (err error) {
sls := producer.GenerateLog(uint32(time.Now().Unix()), addLogMap)
err = producerInstance.SendLog(project, logstore, topic, realIP, sls)
if logs.CheckErr(err, "sls") {
return
}
return
}
func Close() {
producerInstance.SafeClose() // 安全关闭
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论