58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package mq
|
|
|
|
import (
|
|
"encoding/json"
|
|
"mongo.games.com/game/dbproxy/svc"
|
|
"mongo.games.com/game/model"
|
|
"mongo.games.com/game/mq"
|
|
"mongo.games.com/goserver/core/broker"
|
|
"mongo.games.com/goserver/core/broker/rabbitmq"
|
|
)
|
|
|
|
func init() {
|
|
mq.RegisterSubscriber(model.LoginLogCollName, func(e broker.Event) (err error) {
|
|
msg := e.Message()
|
|
if msg != nil {
|
|
defer func() {
|
|
if err != nil {
|
|
mq.BackUp(e, err)
|
|
}
|
|
|
|
e.Ack()
|
|
|
|
recover()
|
|
}()
|
|
|
|
var log model.LoginLog
|
|
err = json.Unmarshal(msg.Body, &log)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
c := svc.LoginLogsCollection(log.Platform)
|
|
if c != nil {
|
|
err = c.Insert(log)
|
|
}
|
|
return
|
|
}
|
|
return nil
|
|
}, broker.Queue(model.LoginLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
|
|
|
//for test
|
|
//RegisterSubscriber(model.LoginLogCollName, func(e broker.Event) (err error) {
|
|
// msg := e.Message()
|
|
// if msg != nil {
|
|
// var log model.LoginLog
|
|
// err = json.Unmarshal(msg.Body, &log)
|
|
// if err != nil {
|
|
// return
|
|
// }
|
|
//
|
|
// logger.Logger.Trace(log)
|
|
// return
|
|
// }
|
|
// return nil
|
|
//}, broker.Queue(model.LoginLogCollName+"_echo"), rabbitmq.DurableQueue())
|
|
//for test
|
|
}
|