mongo operation

pull/329/head
wangchuxiao 2 years ago
parent 63d75bb68b
commit 0f1208dba9

@ -62,12 +62,15 @@ kafka:
ms2pschat:
addr: [ 127.0.0.1:9092 ] #kafka配置默认即可
topic: "ms2ps_chat" #消息push
msgtomodify:
addr: [ 127.0.0.1:9092 ] #kafka配置默认即可
topic: "msg_to_modify"
consumergroupid:
msgToTransfer: mongo
msgToMongo: mongo_ex
msgToMySql: mysql
msgToPush: push
msgToModify: modify
#---------------Internal service configuration---------------------#

@ -22,7 +22,9 @@ var (
persistentCH PersistentConsumerHandler
historyCH OnlineHistoryRedisConsumerHandler
historyMongoCH OnlineHistoryMongoConsumerHandler
modifyCH ModifyMsgConsumerHandler
producer *kafka.Producer
producerToModify *kafka.Producer
producerToMongo *kafka.Producer
cmdCh chan Cmd2Value
onlineTopicStatus int
@ -43,11 +45,13 @@ func Init() {
persistentCH.Init() // ws2mschat save mysql
historyCH.Init(cmdCh) //
historyMongoCH.Init()
modifyCH.Init()
onlineTopicStatus = OnlineTopicVacancy
//offlineHistoryCH.Init(cmdCh)
statistics.NewStatistics(&singleMsgSuccessCount, config.Config.ModuleName.MsgTransferName, fmt.Sprintf("%d second singleMsgCount insert to mongo", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
statistics.NewStatistics(&groupMsgCount, config.Config.ModuleName.MsgTransferName, fmt.Sprintf("%d second groupMsgCount insert to mongo", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
producer = kafka.NewKafkaProducer(config.Config.Kafka.Ms2pschat.Addr, config.Config.Kafka.Ms2pschat.Topic)
producerToModify = kafka.NewKafkaProducer(config.Config.Kafka.MsgToModify.Addr, config.Config.Kafka.MsgToModify.Topic)
producerToMongo = kafka.NewKafkaProducer(config.Config.Kafka.MsgToMongo.Addr, config.Config.Kafka.MsgToMongo.Topic)
}
func Run(promethuesPort int) {
@ -59,6 +63,7 @@ func Run(promethuesPort int) {
}
go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH)
go historyMongoCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyMongoCH)
go modifyCH.modifyMsgConsumerGroup.RegisterHandleAndConsumer(&modifyCH)
//go offlineHistoryCH.historyConsumerGroup.RegisterHandleAndConsumer(&offlineHistoryCH)
go func() {
err := promePkg.StartPromeSrv(promethuesPort)

@ -0,0 +1,117 @@
package logic
import (
"Open_IM/pkg/base_info"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db"
kfk "Open_IM/pkg/common/kafka"
"Open_IM/pkg/common/log"
pbMsg "Open_IM/pkg/proto/msg"
server_api_params "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils"
"encoding/json"
"github.com/Shopify/sarama"
"github.com/golang/protobuf/proto"
)
type ModifyMsgConsumerHandler struct {
msgHandle map[string]fcb
modifyMsgConsumerGroup *kfk.MConsumerGroup
}
func (mmc *ModifyMsgConsumerHandler) Init() {
mmc.msgHandle = make(map[string]fcb)
mmc.msgHandle[config.Config.Kafka.MsgToModify.Topic] = mmc.ModifyMsg
mmc.modifyMsgConsumerGroup = kfk.NewMConsumerGroup(&kfk.MConsumerGroupConfig{KafkaVersion: sarama.V2_0_0_0,
OffsetsInitial: sarama.OffsetNewest, IsReturnErr: false}, []string{config.Config.Kafka.MsgToModify.Topic},
config.Config.Kafka.MsgToModify.Addr, config.Config.Kafka.ConsumerGroupID.MsgToModify)
}
func (ModifyMsgConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }
func (ModifyMsgConsumerHandler) Cleanup(_ sarama.ConsumerGroupSession) error { return nil }
func (mmc *ModifyMsgConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession,
claim sarama.ConsumerGroupClaim) error {
for msg := range claim.Messages() {
log.NewDebug("", "kafka get info to mysql", "ModifyMsgConsumerHandler", msg.Topic, "msgPartition", msg.Partition, "msg", string(msg.Value), "key", string(msg.Key))
if len(msg.Value) != 0 {
mmc.msgHandle[msg.Topic](msg, string(msg.Key), sess)
} else {
log.Error("", "msg get from kafka but is nil", msg.Key)
}
sess.MarkMessage(msg, "")
}
return nil
}
func (mmc *ModifyMsgConsumerHandler) ModifyMsg(cMsg *sarama.ConsumerMessage, msgKey string, _ sarama.ConsumerGroupSession) {
log.NewInfo("msg come here ModifyMsg!!!", "", "msg", string(cMsg.Value), msgKey)
msgFromMQ := pbMsg.MsgDataToModifyByMQ{}
err := proto.Unmarshal(cMsg.Value, &msgFromMQ)
if err != nil {
log.NewError(msgFromMQ.TriggerID, "msg_transfer Unmarshal msg err", "msg", string(cMsg.Value), "err", err.Error())
return
}
log.Debug(msgFromMQ.TriggerID, "proto.Unmarshal MsgDataToMQ", msgFromMQ.String())
for _, msgDataToMQ := range msgFromMQ.MessageList {
if msgDataToMQ.MsgData.ContentType == constant.ReactionMessageModifier {
notification := &base_info.ReactionMessageModifierNotification{}
if err := json.Unmarshal(msgDataToMQ.MsgData.Content, notification); err != nil {
continue
}
if notification.IsExternalExtensions {
log.NewInfo(msgDataToMQ.OperationID, "msg:", notification, "this is external extensions")
continue
}
if !notification.IsReact {
// first time to modify
var reactionExtensionList = make(map[string]db.KeyValue)
extendMsg := db.ExtendMsg{
ReactionExtensionList: reactionExtensionList,
ClientMsgID: notification.ClientMsgID,
MsgFirstModifyTime: notification.MsgFirstModifyTime,
}
for _, v := range notification.SuccessReactionExtensionList {
reactionExtensionList[v.TypeKey] = db.KeyValue{
TypeKey: v.TypeKey,
Value: v.Value,
LatestUpdateTime: v.LatestUpdateTime,
}
}
if err := db.DB.InsertExtendMsg(notification.SourceID, notification.SessionType, &extendMsg); err != nil {
log.NewError(msgDataToMQ.OperationID, "MsgFirstModify InsertExtendMsg failed", notification.SourceID, notification.SessionType, extendMsg, err.Error())
continue
}
} else {
var reactionExtensionList = make(map[string]*server_api_params.KeyValue)
for _, v := range notification.SuccessReactionExtensionList {
reactionExtensionList[v.TypeKey] = &server_api_params.KeyValue{
TypeKey: v.TypeKey,
Value: v.Value,
LatestUpdateTime: v.LatestUpdateTime,
}
}
// is already modify
if err := db.DB.InsertOrUpdateReactionExtendMsgSet(notification.SourceID, notification.SessionType, notification.ClientMsgID, notification.MsgFirstModifyTime, reactionExtensionList); err != nil {
log.NewError(msgDataToMQ.OperationID, "InsertOrUpdateReactionExtendMsgSet failed")
}
}
} else if msgDataToMQ.MsgData.ContentType == constant.ReactionMessageDeleter {
notification := &base_info.ReactionMessageDeleteNotification{}
if err := json.Unmarshal(msgDataToMQ.MsgData.Content, notification); err != nil {
continue
}
if err := db.DB.DeleteReactionExtendMsgSet(notification.SourceID, notification.SessionType, notification.ClientMsgID, notification.MsgFirstModifyTime, notification.SuccessReactionExtensionList); err != nil {
log.NewError(msgDataToMQ.OperationID, "InsertOrUpdateReactionExtendMsgSet failed")
}
}
}
}
func UnMarshallSetReactionMsgContent(content []byte) (notification *base_info.ReactionMessageModifierNotification, err error) {
return notification, nil
}

@ -72,6 +72,7 @@ func (och *OnlineHistoryRedisConsumerHandler) Run(channelID int) {
storageMsgList := make([]*pbMsg.MsgDataToMQ, 0, 80)
notStoragePushMsgList := make([]*pbMsg.MsgDataToMQ, 0, 80)
log.Debug(triggerID, "msg arrived channel", "channel id", channelID, msgList, msgChannelValue.aggregationID, len(msgList))
var modifyMsgList []*pbMsg.MsgDataToMQ
for _, v := range msgList {
log.Debug(triggerID, "msg come to storage center", v.String())
isHistory := utils.GetSwitchFromOptions(v.MsgData.Options, constant.IsHistory)
@ -85,8 +86,13 @@ func (och *OnlineHistoryRedisConsumerHandler) Run(channelID int) {
}
}
if v.MsgData.ContentType == constant.ReactionMessageModifier || v.MsgData.ContentType == constant.ReactionMessageDeleter {
modifyMsgList = append(modifyMsgList, v)
}
}
if len(modifyMsgList) > 0 {
sendMessageToModifyMQ(msgChannelValue.aggregationID, triggerID, modifyMsgList)
}
//switch msgChannelValue.msg.MsgData.SessionType {
//case constant.SingleChatType:
//case constant.GroupChatType:
@ -552,6 +558,17 @@ func sendMessageToPushMQ(message *pbMsg.MsgDataToMQ, pushToUserID string) {
return
}
func sendMessageToModifyMQ(aggregationID string, triggerID string, messages []*pbMsg.MsgDataToMQ) {
if len(messages) > 0 {
pid, offset, err := producerToModify.SendMessage(&pbMsg.MsgDataToModifyByMQ{AggregationID: aggregationID, MessageList: messages, TriggerID: triggerID}, aggregationID, triggerID)
if err != nil {
log.Error(triggerID, "kafka send failed", "send data", len(messages), "pid", pid, "offset", offset, "err", err.Error(), "key", aggregationID)
} else {
// log.NewWarn(m.OperationID, "sendMsgToKafka client msgID ", m.MsgData.ClientMsgID)
}
}
}
// String hashes a string to a unique hashcode.
//
// crc32 returns a uint32, but for our use we need

@ -61,50 +61,6 @@ func (mc *OnlineHistoryMongoConsumerHandler) handleChatWs2Mongo(cMsg *sarama.Con
if unexistSeqList, err := db.DB.DelMsgBySeqList(DeleteMessageTips.UserID, DeleteMessageTips.SeqList, v.OperationID); err != nil {
log.NewError(v.OperationID, utils.GetSelfFuncName(), "DelMsgBySeqList args: ", DeleteMessageTips.UserID, DeleteMessageTips.SeqList, v.OperationID, err.Error(), unexistSeqList)
}
} else if v.MsgData.ContentType == constant.ReactionMessageModifier {
var req pbMsg.ModifyMessageReactionExtensionsReq
if req.IsExternalExtensions {
log.NewInfo(req.OperationID, "msg:", req.String(), "this is external extensions")
continue
}
if !req.IsReact {
// first time to modify
var reactionExtensionList = make(map[string]db.KeyValue)
for k, v := range req.ReactionExtensionList {
reactionExtensionList[k] = db.KeyValue{
TypeKey: v.TypeKey,
Value: v.Value,
LatestUpdateTime: v.LatestUpdateTime,
}
}
extendMsg := db.ExtendMsg{
ReactionExtensionList: reactionExtensionList,
ClientMsgID: req.ClientMsgID,
MsgFirstModifyTime: req.MsgFirstModifyTime,
}
if req.AttachedInfo != nil {
extendMsg.AttachedInfo = req.AttachedInfo.Value
}
if req.Ex != nil {
extendMsg.Ex = req.Ex.Value
}
if err := db.DB.InsertExtendMsg(req.SourceID, req.SessionType, &extendMsg); err != nil {
log.NewError(req.OperationID, "MsgFirstModify InsertExtendMsg failed", req.SourceID, req.SessionType, extendMsg, err.Error())
continue
}
} else {
// is already modify
if err := db.DB.InsertOrUpdateReactionExtendMsgSet(req.SourceID, req.SessionType, req.ClientMsgID, req.MsgFirstModifyTime, req.ReactionExtensionList); err != nil {
log.NewError(req.OperationID, "InsertOrUpdateReactionExtendMsgSet failed")
}
}
} else if v.MsgData.ContentType == constant.ReactionMessageDeleter {
var req pbMsg.OperateMessageListReactionExtensionsReq
for _, v := range req.MessageReactionKeyList {
if err := db.DB.DeleteReactionExtendMsgSet(req.SourceID, req.SessionType, v.ClientMsgID, v.MsgFirstModifyTime, v.ReactionExtensionList); err != nil {
log.NewError(req.OperationID, "InsertOrUpdateReactionExtendMsgSet failed")
}
}
}
}
}

@ -116,3 +116,12 @@ type ReactionMessageModifierNotification struct {
IsExternalExtensions bool `json:"isExternalExtensions"`
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}
type ReactionMessageDeleteNotification struct {
SourceID string `json:"sourceID" binding:"required"`
OpUserID string `json:"opUserID" binding:"required"`
SessionType int32 `json:"sessionType" binding:"required"`
SuccessReactionExtensionList map[string]*sdk_ws.KeyValue `json:"reactionExtensionList,omitempty" binding:"required"`
ClientMsgID string `json:"clientMsgID" binding:"required"`
MsgFirstModifyTime int64 `json:"msgFirstModifyTime"`
}

@ -248,11 +248,16 @@ type config struct {
Addr []string `yaml:"addr"`
Topic string `yaml:"topic"`
}
MsgToModify struct {
Addr []string `yaml:"addr"`
Topic string `yaml:"topic"`
}
ConsumerGroupID struct {
MsgToRedis string `yaml:"msgToTransfer"`
MsgToMongo string `yaml:"msgToMongo"`
MsgToMySql string `yaml:"msgToMySql"`
MsgToPush string `yaml:"msgToPush"`
MsgToRedis string `yaml:"msgToTransfer"`
MsgToMongo string `yaml:"msgToMongo"`
MsgToMySql string `yaml:"msgToMySql"`
MsgToPush string `yaml:"msgToPush"`
MsgToModify string `yaml:"msgToModify"`
}
}
Secret string `yaml:"secret"`

@ -8,6 +8,7 @@ import (
"errors"
"fmt"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"strconv"
"strings"
@ -89,30 +90,41 @@ func (d *DataBases) GetAllExtendMsgSet(ID string, opts *GetAllExtendMsgSetOpts)
return sets, nil
}
type GetExtendMsgSetOpts struct {
ExcludeExtendMsgs bool
}
// first modify msg
func (d *DataBases) InsertExtendMsg(sourceID string, sessionType int32, msg *ExtendMsg) error {
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cExtendMsgSet)
func (d *DataBases) GetExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, maxMsgUpdateTime int64, c *mongo.Collection) (*ExtendMsgSet, error) {
regex := fmt.Sprintf("^%s", sourceID)
var err error
findOpts := options.Find().SetLimit(1).SetSkip(0).SetSort(bson.M{"source_id": -1}).SetProjection(bson.M{"extend_msgs": 0})
// update newest
result, err := c.Find(ctx, bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType}, findOpts)
find := bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType}
if maxMsgUpdateTime > 0 {
find["max_msg_update_time"] = maxMsgUpdateTime
}
result, err := c.Find(ctx, find, findOpts)
if err != nil {
return utils.Wrap(err, "")
return nil, utils.Wrap(err, "")
}
var setList []ExtendMsgSet
if err := result.All(ctx, &setList); err != nil {
return nil, utils.Wrap(err, "")
}
if len(setList) == 0 {
return nil, nil
}
return &setList[0], nil
}
// first modify msg
func (d *DataBases) InsertExtendMsg(sourceID string, sessionType int32, msg *ExtendMsg) error {
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cExtendMsgSet)
set, err := d.GetExtendMsgSet(ctx, sourceID, sessionType, 0, c)
if err != nil {
return utils.Wrap(err, "")
}
if len(setList) == 0 || setList[0].ExtendMsgNum >= GetExtendMsgMaxNum() {
if set == nil || set.ExtendMsgNum >= GetExtendMsgMaxNum() {
var index int32
if len(setList) > 0 {
index = SplitSourceIDAndGetIndex(setList[0].SourceID)
if set != nil {
index = SplitSourceIDAndGetIndex(set.SourceID)
}
err = d.CreateExtendMsgSet(&ExtendMsgSet{
SourceID: GetExtendMsgSourceID(sourceID, index),
@ -123,7 +135,7 @@ func (d *DataBases) InsertExtendMsg(sourceID string, sessionType int32, msg *Ext
MaxMsgUpdateTime: msg.MsgFirstModifyTime,
})
} else {
_, err = c.UpdateOne(ctx, bson.M{"source_id": setList[0].SourceID, "session_type": sessionType}, bson.M{"$set": bson.M{"max_msg_update_time": msg.MsgFirstModifyTime, "$inc": bson.M{"extend_msg_num": 1}, fmt.Sprintf("extend_msgs.%s", msg.ClientMsgID): msg}})
_, err = c.UpdateOne(ctx, bson.M{"source_id": set.SourceID, "session_type": sessionType}, bson.M{"$set": bson.M{"max_msg_update_time": msg.MsgFirstModifyTime, "$inc": bson.M{"extend_msg_num": 1}, fmt.Sprintf("extend_msgs.%s", msg.ClientMsgID): msg}})
}
return utils.Wrap(err, "")
}
@ -140,47 +152,33 @@ func (d *DataBases) InsertOrUpdateReactionExtendMsgSet(sourceID string, sessionT
opt := &options.UpdateOptions{
Upsert: &upsert,
}
findOpts := options.Find().SetLimit(1).SetSkip(0).SetSort(bson.M{"source_id": -1}).SetProjection(bson.M{"extend_msgs": 0})
regex := fmt.Sprintf("^%s", sourceID)
result, err := c.Find(ctx, bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType, "max_msg_update_time": bson.M{"$lte": msgFirstModifyTime}}, findOpts)
set, err := d.GetExtendMsgSet(ctx, sourceID, sessionType, msgFirstModifyTime, c)
if err != nil {
return utils.Wrap(err, "")
}
var setList []ExtendMsgSet
if err := result.All(ctx, &setList); err != nil {
return utils.Wrap(err, "")
}
if len(setList) == 0 {
return utils.Wrap(errors.New("InsertOrUpdateReactionExtendMsgSet failed, len(setList) == 0"), "")
if set == nil {
return errors.New(fmt.Sprintf("sourceID %s has no set", sourceID))
}
_, err = c.UpdateOne(ctx, bson.M{"source_id": setList[0].SourceID, "session_type": sessionType}, bson.M{"$set": updateBson}, opt)
_, err = c.UpdateOne(ctx, bson.M{"source_id": set.SourceID, "session_type": sessionType}, bson.M{"$set": updateBson}, opt)
return utils.Wrap(err, "")
}
// delete TypeKey
func (d *DataBases) DeleteReactionExtendMsgSet(sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList []*server_api_params.KeyValue) error {
func (d *DataBases) DeleteReactionExtendMsgSet(sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*server_api_params.KeyValue) error {
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cExtendMsgSet)
var updateBson = bson.M{}
for _, v := range reactionExtensionList {
updateBson[fmt.Sprintf("extend_msgs.%s.%s", clientMsgID, v.TypeKey)] = ""
}
findOpts := options.Find().SetLimit(1).SetSkip(0).SetSort(bson.M{"source_id": -1}).SetProjection(bson.M{"extend_msgs": 0})
regex := fmt.Sprintf("^%s", sourceID)
result, err := c.Find(ctx, bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType, "max_msg_update_time": bson.M{"$lte": msgFirstModifyTime}}, findOpts)
set, err := d.GetExtendMsgSet(ctx, sourceID, sessionType, msgFirstModifyTime, c)
if err != nil {
return utils.Wrap(err, "")
}
var setList []ExtendMsgSet
if err := result.All(ctx, &setList); err != nil {
return utils.Wrap(err, "")
}
if len(setList) == 0 {
return utils.Wrap(errors.New("InsertOrUpdateReactionExtendMsgSet failed, len(setList) == 0"), "")
if set == nil {
return errors.New(fmt.Sprintf("sourceID %s has no set", sourceID))
}
_, err = c.UpdateOne(ctx, bson.M{"source_id": setList[0].SourceID, "session_type": sessionType}, bson.M{"$unset": updateBson})
_, err = c.UpdateOne(ctx, bson.M{"source_id": set.SourceID, "session_type": sessionType}, bson.M{"$unset": updateBson})
return err
}
@ -189,16 +187,19 @@ func (d *DataBases) GetExtendMsg(sourceID string, sessionType int32, clientMsgID
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cExtendMsgSet)
findOpts := options.Find().SetLimit(1).SetSkip(0).SetSort(bson.M{"source_id": -1}).SetProjection(bson.M{fmt.Sprintf("extend_msgs.%s", clientMsgID): 1})
regex := fmt.Sprintf("^%s", sourceID)
result, err := c.Find(ctx, bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType, "msgFirstModifyTime": bson.M{"$lte": maxMsgUpdateTime}}, findOpts)
result, err := c.Find(ctx, bson.M{"source_id": primitive.Regex{Pattern: regex}, "session_type": sessionType, "max_msg_update_time": bson.M{"$lte": maxMsgUpdateTime}}, findOpts)
if err != nil {
return nil, utils.Wrap(err, "")
}
var extendMsgList []ExtendMsg
if err := result.All(ctx, &extendMsgList); err != nil {
var setList []ExtendMsgSet
if err := result.All(ctx, &setList); err != nil {
return nil, utils.Wrap(err, "")
}
if len(extendMsgList) == 0 {
if len(setList) == 0 {
return nil, utils.Wrap(errors.New("GetExtendMsg failed, len(setList) == 0"), "")
}
return &extendMsgList[0], nil
if v, ok := setList[0].ExtendMsgs[clientMsgID]; ok {
return &v, nil
}
return nil, errors.New(fmt.Sprintf("cant find client msg id: %s", clientMsgID))
}

@ -567,9 +567,9 @@ func DelConversationFromCache(ownerUserID, conversationID string) error {
return utils.Wrap(db.DB.Rc.TagAsDeleted(conversationCache+ownerUserID+":"+conversationID), "DelConversationFromCache err")
}
func GetExtendMsg(sourceID string, sessionType int32, clientMsgID string, maxMsgUpdateTime int64) (*db.ExtendMsg, error) {
func GetExtendMsg(sourceID string, sessionType int32, clientMsgID string, firstModifyTime int64) (*db.ExtendMsg, error) {
getExtendMsg := func() (string, error) {
extendMsg, err := db.DB.GetExtendMsg(sourceID, sessionType, clientMsgID, maxMsgUpdateTime)
extendMsg, err := db.DB.GetExtendMsg(sourceID, sessionType, clientMsgID, firstModifyTime)
if err != nil {
return "", utils.Wrap(err, "GetExtendMsgList failed")
}

@ -38,7 +38,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} }
func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMQ) ProtoMessage() {}
func (*MsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{0}
return fileDescriptor_msg_a1760b784e1ce32d, []int{0}
}
func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b)
@ -91,7 +91,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} }
func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) }
func (*MsgDataToDB) ProtoMessage() {}
func (*MsgDataToDB) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{1}
return fileDescriptor_msg_a1760b784e1ce32d, []int{1}
}
func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b)
@ -138,7 +138,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} }
func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*PushMsgDataToMQ) ProtoMessage() {}
func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{2}
return fileDescriptor_msg_a1760b784e1ce32d, []int{2}
}
func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b)
@ -193,7 +193,7 @@ func (m *MsgDataToMongoByMQ) Reset() { *m = MsgDataToMongoByMQ{} }
func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMongoByMQ) ProtoMessage() {}
func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{3}
return fileDescriptor_msg_a1760b784e1ce32d, []int{3}
}
func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b)
@ -273,7 +273,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{4}
return fileDescriptor_msg_a1760b784e1ce32d, []int{4}
}
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@ -321,7 +321,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{5}
return fileDescriptor_msg_a1760b784e1ce32d, []int{5}
}
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@ -382,7 +382,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} }
func (m *SendMsgReq) String() string { return proto.CompactTextString(m) }
func (*SendMsgReq) ProtoMessage() {}
func (*SendMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{6}
return fileDescriptor_msg_a1760b784e1ce32d, []int{6}
}
func (m *SendMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgReq.Unmarshal(m, b)
@ -438,7 +438,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} }
func (m *SendMsgResp) String() string { return proto.CompactTextString(m) }
func (*SendMsgResp) ProtoMessage() {}
func (*SendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{7}
return fileDescriptor_msg_a1760b784e1ce32d, []int{7}
}
func (m *SendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgResp.Unmarshal(m, b)
@ -506,7 +506,7 @@ func (m *ClearMsgReq) Reset() { *m = ClearMsgReq{} }
func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) }
func (*ClearMsgReq) ProtoMessage() {}
func (*ClearMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{8}
return fileDescriptor_msg_a1760b784e1ce32d, []int{8}
}
func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b)
@ -559,7 +559,7 @@ func (m *ClearMsgResp) Reset() { *m = ClearMsgResp{} }
func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) }
func (*ClearMsgResp) ProtoMessage() {}
func (*ClearMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{9}
return fileDescriptor_msg_a1760b784e1ce32d, []int{9}
}
func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b)
@ -608,7 +608,7 @@ func (m *SetMsgMinSeqReq) Reset() { *m = SetMsgMinSeqReq{} }
func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqReq) ProtoMessage() {}
func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{10}
return fileDescriptor_msg_a1760b784e1ce32d, []int{10}
}
func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b)
@ -675,7 +675,7 @@ func (m *SetMsgMinSeqResp) Reset() { *m = SetMsgMinSeqResp{} }
func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqResp) ProtoMessage() {}
func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{11}
return fileDescriptor_msg_a1760b784e1ce32d, []int{11}
}
func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b)
@ -721,7 +721,7 @@ func (m *SetSendMsgStatusReq) Reset() { *m = SetSendMsgStatusReq{} }
func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusReq) ProtoMessage() {}
func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{12}
return fileDescriptor_msg_a1760b784e1ce32d, []int{12}
}
func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b)
@ -767,7 +767,7 @@ func (m *SetSendMsgStatusResp) Reset() { *m = SetSendMsgStatusResp{} }
func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusResp) ProtoMessage() {}
func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{13}
return fileDescriptor_msg_a1760b784e1ce32d, []int{13}
}
func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b)
@ -812,7 +812,7 @@ func (m *GetSendMsgStatusReq) Reset() { *m = GetSendMsgStatusReq{} }
func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusReq) ProtoMessage() {}
func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{14}
return fileDescriptor_msg_a1760b784e1ce32d, []int{14}
}
func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b)
@ -852,7 +852,7 @@ func (m *GetSendMsgStatusResp) Reset() { *m = GetSendMsgStatusResp{} }
func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusResp) ProtoMessage() {}
func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{15}
return fileDescriptor_msg_a1760b784e1ce32d, []int{15}
}
func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b)
@ -907,7 +907,7 @@ func (m *DelSuperGroupMsgReq) Reset() { *m = DelSuperGroupMsgReq{} }
func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgReq) ProtoMessage() {}
func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{16}
return fileDescriptor_msg_a1760b784e1ce32d, []int{16}
}
func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b)
@ -967,7 +967,7 @@ func (m *DelSuperGroupMsgResp) Reset() { *m = DelSuperGroupMsgResp{} }
func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgResp) ProtoMessage() {}
func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{17}
return fileDescriptor_msg_a1760b784e1ce32d, []int{17}
}
func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b)
@ -1014,7 +1014,7 @@ func (m *GetSuperGroupMsgReq) Reset() { *m = GetSuperGroupMsgReq{} }
func (m *GetSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgReq) ProtoMessage() {}
func (*GetSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{18}
return fileDescriptor_msg_a1760b784e1ce32d, []int{18}
}
func (m *GetSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgReq.Unmarshal(m, b)
@ -1068,7 +1068,7 @@ func (m *GetSuperGroupMsgResp) Reset() { *m = GetSuperGroupMsgResp{} }
func (m *GetSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgResp) ProtoMessage() {}
func (*GetSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{19}
return fileDescriptor_msg_a1760b784e1ce32d, []int{19}
}
func (m *GetSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgResp.Unmarshal(m, b)
@ -1121,7 +1121,7 @@ func (m *GetWriteDiffMsgReq) Reset() { *m = GetWriteDiffMsgReq{} }
func (m *GetWriteDiffMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgReq) ProtoMessage() {}
func (*GetWriteDiffMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{20}
return fileDescriptor_msg_a1760b784e1ce32d, []int{20}
}
func (m *GetWriteDiffMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgReq.Unmarshal(m, b)
@ -1168,7 +1168,7 @@ func (m *GetWriteDiffMsgResp) Reset() { *m = GetWriteDiffMsgResp{} }
func (m *GetWriteDiffMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgResp) ProtoMessage() {}
func (*GetWriteDiffMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{21}
return fileDescriptor_msg_a1760b784e1ce32d, []int{21}
}
func (m *GetWriteDiffMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgResp.Unmarshal(m, b)
@ -1230,7 +1230,7 @@ func (m *ModifyMessageReactionExtensionsReq) Reset() { *m = ModifyMessag
func (m *ModifyMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsReq) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{22}
return fileDescriptor_msg_a1760b784e1ce32d, []int{22}
}
func (m *ModifyMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsReq.Unmarshal(m, b)
@ -1348,7 +1348,7 @@ func (m *SetMessageReactionExtensionsReq) Reset() { *m = SetMessageReact
func (m *SetMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsReq) ProtoMessage() {}
func (*SetMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{23}
return fileDescriptor_msg_a1760b784e1ce32d, []int{23}
}
func (m *SetMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsReq.Unmarshal(m, b)
@ -1461,7 +1461,7 @@ func (m *SetMessageReactionExtensionsResp) Reset() { *m = SetMessageReac
func (m *SetMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsResp) ProtoMessage() {}
func (*SetMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{24}
return fileDescriptor_msg_a1760b784e1ce32d, []int{24}
}
func (m *SetMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsResp.Unmarshal(m, b)
@ -1537,7 +1537,7 @@ func (m *ModifyMessageReactionExtensionsResp) Reset() { *m = ModifyMessa
func (m *ModifyMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsResp) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{25}
return fileDescriptor_msg_a1760b784e1ce32d, []int{25}
}
func (m *ModifyMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsResp.Unmarshal(m, b)
@ -1602,7 +1602,7 @@ func (m *OperateMessageListReactionExtensionsReq) Reset() {
func (m *OperateMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*OperateMessageListReactionExtensionsReq) ProtoMessage() {}
func (*OperateMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{26}
return fileDescriptor_msg_a1760b784e1ce32d, []int{26}
}
func (m *OperateMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateMessageListReactionExtensionsReq.Unmarshal(m, b)
@ -1674,7 +1674,7 @@ func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) String() st
}
func (*OperateMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {}
func (*OperateMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{26, 0}
return fileDescriptor_msg_a1760b784e1ce32d, []int{26, 0}
}
func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b)
@ -1731,7 +1731,7 @@ func (m *OperateMessageListReactionExtensionsResp) Reset() {
func (m *OperateMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*OperateMessageListReactionExtensionsResp) ProtoMessage() {}
func (*OperateMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{27}
return fileDescriptor_msg_a1760b784e1ce32d, []int{27}
}
func (m *OperateMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateMessageListReactionExtensionsResp.Unmarshal(m, b)
@ -1792,7 +1792,7 @@ func (m *ExtendMsgResp) Reset() { *m = ExtendMsgResp{} }
func (m *ExtendMsgResp) String() string { return proto.CompactTextString(m) }
func (*ExtendMsgResp) ProtoMessage() {}
func (*ExtendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{28}
return fileDescriptor_msg_a1760b784e1ce32d, []int{28}
}
func (m *ExtendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsgResp.Unmarshal(m, b)
@ -1848,7 +1848,7 @@ func (m *ExtendMsg) Reset() { *m = ExtendMsg{} }
func (m *ExtendMsg) String() string { return proto.CompactTextString(m) }
func (*ExtendMsg) ProtoMessage() {}
func (*ExtendMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{29}
return fileDescriptor_msg_a1760b784e1ce32d, []int{29}
}
func (m *ExtendMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsg.Unmarshal(m, b)
@ -1916,7 +1916,7 @@ func (m *KeyValueResp) Reset() { *m = KeyValueResp{} }
func (m *KeyValueResp) String() string { return proto.CompactTextString(m) }
func (*KeyValueResp) ProtoMessage() {}
func (*KeyValueResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_489179134d252ef4, []int{30}
return fileDescriptor_msg_a1760b784e1ce32d, []int{30}
}
func (m *KeyValueResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyValueResp.Unmarshal(m, b)
@ -1957,6 +1957,60 @@ func (m *KeyValueResp) GetErrMsg() string {
return ""
}
type MsgDataToModifyByMQ struct {
AggregationID string `protobuf:"bytes,1,opt,name=aggregationID" json:"aggregationID,omitempty"`
MessageList []*MsgDataToMQ `protobuf:"bytes,2,rep,name=messageList" json:"messageList,omitempty"`
TriggerID string `protobuf:"bytes,3,opt,name=triggerID" json:"triggerID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *MsgDataToModifyByMQ) Reset() { *m = MsgDataToModifyByMQ{} }
func (m *MsgDataToModifyByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToModifyByMQ) ProtoMessage() {}
func (*MsgDataToModifyByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_a1760b784e1ce32d, []int{31}
}
func (m *MsgDataToModifyByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToModifyByMQ.Unmarshal(m, b)
}
func (m *MsgDataToModifyByMQ) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgDataToModifyByMQ.Marshal(b, m, deterministic)
}
func (dst *MsgDataToModifyByMQ) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgDataToModifyByMQ.Merge(dst, src)
}
func (m *MsgDataToModifyByMQ) XXX_Size() int {
return xxx_messageInfo_MsgDataToModifyByMQ.Size(m)
}
func (m *MsgDataToModifyByMQ) XXX_DiscardUnknown() {
xxx_messageInfo_MsgDataToModifyByMQ.DiscardUnknown(m)
}
var xxx_messageInfo_MsgDataToModifyByMQ proto.InternalMessageInfo
func (m *MsgDataToModifyByMQ) GetAggregationID() string {
if m != nil {
return m.AggregationID
}
return ""
}
func (m *MsgDataToModifyByMQ) GetMessageList() []*MsgDataToMQ {
if m != nil {
return m.MessageList
}
return nil
}
func (m *MsgDataToModifyByMQ) GetTriggerID() string {
if m != nil {
return m.TriggerID
}
return ""
}
func init() {
proto.RegisterType((*MsgDataToMQ)(nil), "msg.MsgDataToMQ")
proto.RegisterType((*MsgDataToDB)(nil), "msg.MsgDataToDB")
@ -1993,6 +2047,7 @@ func init() {
proto.RegisterType((*ExtendMsg)(nil), "msg.ExtendMsg")
proto.RegisterMapType((map[string]*KeyValueResp)(nil), "msg.ExtendMsg.ReactionExtensionListEntry")
proto.RegisterType((*KeyValueResp)(nil), "msg.KeyValueResp")
proto.RegisterType((*MsgDataToModifyByMQ)(nil), "msg.MsgDataToModifyByMQ")
}
// Reference imports to suppress errors if they are not otherwise used.
@ -2531,105 +2586,107 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
Metadata: "msg/msg.proto",
}
func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_489179134d252ef4) }
var fileDescriptor_msg_489179134d252ef4 = []byte{
// 1548 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4f, 0x73, 0xdb, 0x44,
0x14, 0x1f, 0x59, 0xb1, 0x93, 0x3c, 0x27, 0x4d, 0xba, 0x4d, 0x83, 0xaa, 0x66, 0xa6, 0x46, 0xb4,
0xd4, 0x85, 0xd6, 0x19, 0x02, 0x33, 0x65, 0xe8, 0x81, 0x36, 0x75, 0x70, 0x33, 0x45, 0xa4, 0x91,
0x03, 0xcc, 0xc0, 0x21, 0x55, 0xed, 0x8d, 0xaa, 0x89, 0x2d, 0x29, 0x5a, 0xa9, 0x89, 0x61, 0x28,
0x27, 0x4e, 0x0c, 0x07, 0xb8, 0x71, 0xe2, 0xc6, 0x77, 0xe0, 0xc8, 0x85, 0x2b, 0x77, 0xbe, 0x02,
0x5f, 0x82, 0xd9, 0x5d, 0xd9, 0x5e, 0xfd, 0x8b, 0x15, 0x97, 0xe9, 0x94, 0x19, 0x6e, 0x7e, 0x6f,
0xdf, 0xbe, 0x7d, 0xbf, 0xf7, 0x7e, 0xda, 0xb7, 0xbb, 0x86, 0xc5, 0x3e, 0xb1, 0xd6, 0xfb, 0xc4,
0x6a, 0x78, 0xbe, 0x1b, 0xb8, 0x48, 0xee, 0x13, 0x4b, 0xad, 0xef, 0x78, 0xd8, 0xb9, 0xb5, 0xad,
0xdf, 0x6a, 0x63, 0xff, 0x19, 0xf6, 0xd7, 0xbd, 0x43, 0x6b, 0x9d, 0x0d, 0xaf, 0x93, 0xee, 0xe1,
0xfe, 0x31, 0x59, 0x3f, 0x26, 0xdc, 0x5c, 0x6d, 0x4c, 0xb4, 0xf4, 0x4d, 0xcf, 0xc3, 0x7e, 0x64,
0xaf, 0x7d, 0x0d, 0x55, 0x9d, 0x58, 0x4d, 0x33, 0x30, 0xf7, 0x5c, 0x7d, 0x17, 0xad, 0x40, 0x39,
0x70, 0x0f, 0xb1, 0xa3, 0x48, 0x35, 0xa9, 0x3e, 0x6f, 0x70, 0x01, 0xd5, 0xa0, 0xea, 0x7a, 0xd8,
0x37, 0x03, 0xdb, 0x75, 0xb6, 0x9b, 0x4a, 0x89, 0x8d, 0x89, 0x2a, 0xf4, 0x1e, 0xcc, 0xf6, 0xb9,
0x1b, 0x45, 0xae, 0x49, 0xf5, 0xea, 0x86, 0xda, 0x20, 0x2c, 0x80, 0x7d, 0xd3, 0xb3, 0xf7, 0x3d,
0xd3, 0x37, 0xfb, 0xa4, 0x11, 0x2d, 0x64, 0x0c, 0x4d, 0x35, 0x2c, 0x2c, 0xde, 0xdc, 0x14, 0x9d,
0x48, 0x85, 0x9d, 0x4c, 0x0e, 0x4e, 0xfb, 0x41, 0x82, 0xa5, 0x47, 0x21, 0x79, 0x2a, 0x02, 0xad,
0x41, 0x75, 0x47, 0x98, 0xc5, 0xe1, 0x8a, 0x2a, 0x31, 0x9a, 0x52, 0xf1, 0x68, 0x34, 0x58, 0xf0,
0x42, 0xf2, 0x74, 0xcf, 0xfd, 0x94, 0x60, 0x7f, 0xbb, 0xc9, 0xb2, 0x31, 0x6f, 0xc4, 0x74, 0xda,
0xaf, 0x12, 0xa0, 0x71, 0x2c, 0xae, 0x63, 0xb9, 0x9b, 0x03, 0x7d, 0x17, 0x29, 0x30, 0xdb, 0x33,
0x49, 0xd0, 0xc6, 0x47, 0x2c, 0x9c, 0x19, 0x63, 0x28, 0xa2, 0xab, 0xb0, 0x68, 0x5a, 0x96, 0x8f,
0xad, 0x38, 0xc8, 0xb8, 0x12, 0x6d, 0x40, 0xb5, 0x8f, 0x09, 0x31, 0x2d, 0xfc, 0xb1, 0x4d, 0x02,
0x45, 0xae, 0xc9, 0xf5, 0xea, 0xc6, 0x72, 0x83, 0x52, 0x49, 0x40, 0x6e, 0x88, 0x46, 0x68, 0x0d,
0xe6, 0x03, 0xdf, 0xb6, 0x2c, 0x16, 0xeb, 0x0c, 0xf3, 0x3a, 0x56, 0x68, 0x9f, 0x00, 0x6a, 0xe1,
0x40, 0x37, 0x4f, 0xee, 0x39, 0x5d, 0xdd, 0x76, 0xda, 0xf8, 0xc8, 0xc0, 0x47, 0x68, 0x15, 0x2a,
0x11, 0x38, 0x9e, 0xb5, 0x48, 0x4a, 0xa6, 0xb4, 0x94, 0x4a, 0xa9, 0x76, 0x0c, 0x17, 0x52, 0xfe,
0x88, 0x47, 0x81, 0x6f, 0xf9, 0xfe, 0x7d, 0xb7, 0x8b, 0x99, 0xc7, 0xb2, 0x31, 0x14, 0xe9, 0x52,
0x5b, 0xbe, 0xaf, 0x13, 0x2b, 0xf2, 0x16, 0x49, 0x54, 0xaf, 0x9b, 0x27, 0x34, 0x53, 0x34, 0xbf,
0x8b, 0x46, 0x24, 0x31, 0x3d, 0xf3, 0xcb, 0xb0, 0x50, 0x3d, 0x93, 0xb4, 0xaf, 0x00, 0xda, 0xd8,
0xe9, 0xea, 0xc4, 0xa2, 0x00, 0x5e, 0x2e, 0xc9, 0x7f, 0x91, 0xa0, 0x3a, 0x5a, 0x9c, 0xa3, 0xc5,
0x71, 0xb4, 0x78, 0x8c, 0x16, 0xc7, 0xd0, 0x72, 0x89, 0x46, 0xc6, 0xd7, 0xd1, 0x89, 0x35, 0x2a,
0x93, 0xa8, 0xa2, 0x16, 0x9d, 0x9e, 0x8d, 0x9d, 0x80, 0x5b, 0x94, 0xb9, 0x85, 0xa0, 0x42, 0x2a,
0xcc, 0x11, 0xec, 0x74, 0xf7, 0xec, 0x3e, 0x56, 0x2a, 0x35, 0xa9, 0x2e, 0x1b, 0x23, 0x59, 0xeb,
0x40, 0xf5, 0x7e, 0x0f, 0x9b, 0x7e, 0x94, 0x9e, 0x55, 0xa8, 0x84, 0xb1, 0xfa, 0x72, 0x89, 0xba,
0x70, 0xbd, 0xa8, 0xf2, 0x3c, 0xc0, 0x91, 0x9c, 0x4c, 0x9e, 0x9c, 0xfe, 0x08, 0xef, 0xc2, 0xc2,
0x78, 0x91, 0x69, 0xd2, 0xa0, 0xfd, 0x2c, 0xc1, 0x52, 0x1b, 0x53, 0x3c, 0x31, 0x2e, 0x66, 0xc6,
0xaa, 0xc0, 0xac, 0xe5, 0xbb, 0xa1, 0x37, 0x0a, 0x75, 0x28, 0xd2, 0x19, 0x7d, 0x4e, 0x91, 0x88,
0x3a, 0x5c, 0x4a, 0x22, 0x98, 0x49, 0x97, 0x5f, 0xc4, 0x5f, 0x8e, 0xe3, 0xd7, 0x9a, 0xb0, 0x1c,
0x0f, 0x6d, 0x2a, 0x84, 0x3b, 0x70, 0xa1, 0x8d, 0x83, 0x88, 0x2c, 0xed, 0xc0, 0x0c, 0x42, 0x62,
0xa4, 0x43, 0x93, 0xd2, 0xa1, 0xad, 0x42, 0x85, 0x30, 0x73, 0xe6, 0xb0, 0x6c, 0x44, 0x92, 0xf6,
0x00, 0x56, 0xd2, 0x0e, 0xa7, 0x0a, 0xed, 0x36, 0xfb, 0x74, 0xcf, 0x1e, 0x9a, 0xf6, 0x18, 0x56,
0x5a, 0xff, 0x4a, 0x08, 0x02, 0x48, 0x39, 0x06, 0xf2, 0x3b, 0x09, 0x2e, 0x34, 0x71, 0xaf, 0x1d,
0x7a, 0xd8, 0x6f, 0xd1, 0x2a, 0x47, 0x3c, 0x16, 0xeb, 0x25, 0x25, 0xf8, 0x3a, 0xe6, 0x4d, 0x29,
0x8f, 0x37, 0x72, 0x9c, 0x37, 0x13, 0xf9, 0x41, 0x93, 0x9d, 0x0e, 0x63, 0xaa, 0x64, 0x77, 0x78,
0xb2, 0x93, 0x80, 0x26, 0xf3, 0x60, 0x19, 0x64, 0xca, 0xec, 0x12, 0x63, 0x36, 0xfd, 0x99, 0x0f,
0x48, 0x7b, 0xce, 0x0b, 0xf3, 0xe2, 0xe1, 0x4e, 0xb9, 0x2f, 0x3e, 0x60, 0xcd, 0xe5, 0x73, 0xdf,
0x0e, 0x70, 0xd3, 0x3e, 0x38, 0x98, 0x1e, 0xa3, 0xf6, 0x0d, 0x4b, 0x57, 0xdc, 0xd3, 0x4b, 0x04,
0xf2, 0x63, 0x19, 0x34, 0xdd, 0xed, 0xda, 0x07, 0x03, 0x9d, 0x77, 0x56, 0x03, 0x9b, 0x1d, 0x1a,
0xec, 0xd6, 0x49, 0x80, 0x1d, 0x62, 0xbb, 0x4e, 0xc1, 0xaf, 0x98, 0xee, 0xd1, 0x6e, 0xe8, 0x77,
0xf0, 0x78, 0x83, 0x1d, 0xca, 0x31, 0x32, 0xcb, 0xe9, 0xcd, 0x97, 0x60, 0x42, 0x17, 0xda, 0x1b,
0x78, 0x98, 0x51, 0xb3, 0x6c, 0x88, 0x2a, 0x74, 0x02, 0x17, 0xfd, 0x64, 0x50, 0xec, 0x90, 0x50,
0x66, 0x87, 0x84, 0x4d, 0x7e, 0x48, 0x98, 0x88, 0xa1, 0x61, 0x64, 0x39, 0xd9, 0x72, 0x02, 0x7f,
0x60, 0x64, 0x2f, 0x90, 0xec, 0x4c, 0x95, 0x74, 0x67, 0xba, 0x09, 0x25, 0x7c, 0xa2, 0xcc, 0xb2,
0x7c, 0xaf, 0x35, 0x2c, 0xd7, 0xb5, 0x7a, 0x98, 0x1f, 0x4e, 0x9f, 0x84, 0x07, 0x8d, 0x76, 0xe0,
0xdb, 0x8e, 0xf5, 0x99, 0xd9, 0x0b, 0xb1, 0x51, 0xc2, 0x27, 0xe8, 0x2e, 0x2c, 0x98, 0x41, 0x60,
0x76, 0x9e, 0xe2, 0xee, 0xb6, 0x73, 0xe0, 0x2a, 0x73, 0x05, 0xe6, 0xc5, 0x66, 0x50, 0x5a, 0xd8,
0x84, 0x01, 0x51, 0xe6, 0x6b, 0x52, 0x7d, 0xce, 0x18, 0x8a, 0x68, 0x03, 0x56, 0x6c, 0x42, 0xc3,
0xf7, 0x1d, 0xb3, 0x37, 0x06, 0xae, 0x00, 0x33, 0xcb, 0x1c, 0x43, 0x0d, 0x40, 0x7d, 0x62, 0x7d,
0x64, 0xfb, 0x24, 0xe0, 0xf9, 0x63, 0x1d, 0xb6, 0xca, 0x3a, 0x6c, 0xc6, 0x88, 0x8a, 0x41, 0xcd,
0x4f, 0x22, 0xe5, 0xf6, 0x21, 0x1e, 0x44, 0xdc, 0xa0, 0x3f, 0xd1, 0x3b, 0x50, 0x7e, 0x46, 0x41,
0x44, 0x67, 0xd0, 0xcb, 0x19, 0x84, 0x7c, 0x88, 0x07, 0x1c, 0x27, 0xb7, 0xfc, 0xa0, 0xf4, 0xbe,
0xa4, 0x7d, 0x5f, 0x86, 0x2b, 0xb4, 0x21, 0xbd, 0xaa, 0x84, 0x0c, 0x4f, 0x27, 0xe4, 0x87, 0x8c,
0x90, 0x13, 0x00, 0xfc, 0xcf, 0xc6, 0xff, 0x0a, 0x1b, 0xff, 0x96, 0xa0, 0x76, 0x7a, 0x31, 0xa7,
0x3d, 0x17, 0x8b, 0xd5, 0x94, 0xd3, 0xd5, 0xcc, 0xce, 0xc7, 0x4c, 0x5e, 0x3e, 0xc4, 0x6a, 0x94,
0xe3, 0xd5, 0xb8, 0x01, 0x15, 0x1f, 0x93, 0xb0, 0x17, 0x28, 0x15, 0xc6, 0xd0, 0xf3, 0x8c, 0xa1,
0x23, 0xb0, 0x98, 0x78, 0x46, 0x64, 0xa0, 0xfd, 0x2e, 0xc1, 0x1b, 0x13, 0xf7, 0xd2, 0x29, 0xfb,
0x53, 0x95, 0x84, 0x9d, 0x0e, 0x26, 0x44, 0xb8, 0xe1, 0x21, 0x16, 0x09, 0xf3, 0x3d, 0xbc, 0x63,
0x18, 0xa2, 0x19, 0xda, 0x00, 0x38, 0x30, 0xed, 0x1e, 0xee, 0xb2, 0x49, 0x33, 0xb9, 0x93, 0x04,
0x2b, 0xed, 0x2f, 0x19, 0xae, 0xf3, 0x9b, 0x1b, 0xd6, 0xc7, 0xd7, 0xc5, 0x17, 0xd8, 0x47, 0x72,
0x6f, 0x0e, 0xe2, 0x1e, 0x23, 0x27, 0xf6, 0x98, 0xc9, 0xfb, 0xc8, 0x31, 0xac, 0xf6, 0xe3, 0x49,
0x7e, 0x88, 0x07, 0xa9, 0x8d, 0xa4, 0x20, 0x92, 0x86, 0x9e, 0x72, 0x65, 0xe4, 0xb8, 0x57, 0x7f,
0xa3, 0x77, 0xf8, 0xd4, 0x50, 0x92, 0x92, 0x52, 0x51, 0x4a, 0x96, 0x72, 0x29, 0xb9, 0x9b, 0xb7,
0x53, 0xf2, 0xea, 0x9f, 0xfa, 0x09, 0x66, 0xcf, 0xd4, 0xfe, 0x90, 0xa0, 0x5e, 0x2c, 0x25, 0xaf,
0x38, 0x4b, 0x5d, 0x58, 0x8c, 0x0d, 0xa2, 0x9b, 0x30, 0x8f, 0x87, 0x8a, 0xe8, 0x0d, 0xe9, 0x5c,
0xc2, 0xc7, 0xd8, 0x40, 0x84, 0x56, 0xca, 0x83, 0x26, 0xc7, 0x0e, 0xe6, 0x7f, 0x96, 0x60, 0x7e,
0xe4, 0x0a, 0xed, 0xe7, 0x95, 0x46, 0x62, 0xd1, 0xdf, 0x88, 0xaf, 0xfc, 0xe2, 0xed, 0xaa, 0x54,
0x94, 0x4d, 0x72, 0x2e, 0x9b, 0xb4, 0x44, 0xc3, 0xe2, 0xd7, 0x98, 0x78, 0x4b, 0x3a, 0xc7, 0x5a,
0x20, 0xbf, 0xe1, 0x96, 0xf0, 0x89, 0xfa, 0xe5, 0x19, 0x9b, 0xc4, 0xf5, 0x78, 0x93, 0xc8, 0xd8,
0x29, 0x85, 0xd6, 0x30, 0x80, 0x05, 0x71, 0x08, 0xdd, 0x86, 0xb9, 0xc3, 0x48, 0x8e, 0x0a, 0x78,
0x2a, 0xc3, 0x47, 0xc6, 0x67, 0x2f, 0xe6, 0xc6, 0x4f, 0x00, 0x72, 0x9f, 0x58, 0xe8, 0x31, 0x2c,
0x25, 0x5e, 0xa5, 0xd0, 0xb5, 0x8c, 0x35, 0xd3, 0x2f, 0x61, 0xea, 0x9b, 0x45, 0xcc, 0x88, 0x87,
0x5c, 0x58, 0x79, 0x14, 0xf6, 0x7a, 0xd1, 0xc7, 0xb6, 0x39, 0x68, 0xe3, 0x23, 0x56, 0xdf, 0xb7,
0x32, 0xe6, 0x67, 0x19, 0xd2, 0xb5, 0xde, 0x2e, 0x6c, 0xcb, 0xbe, 0x83, 0xd9, 0xe8, 0xc6, 0x8d,
0x96, 0xa2, 0xa3, 0xd4, 0xf0, 0xf5, 0x4b, 0x5d, 0x8e, 0x2b, 0x88, 0x87, 0x76, 0x01, 0x9a, 0xb8,
0xa7, 0x13, 0x8b, 0x93, 0x2e, 0x63, 0xa1, 0xf1, 0x30, 0xf5, 0xf0, 0xfa, 0x04, 0x0b, 0xe2, 0xa1,
0x16, 0x2c, 0x27, 0xef, 0xc2, 0x48, 0x61, 0x0b, 0x67, 0xdc, 0xd4, 0xd5, 0x4b, 0x39, 0x23, 0xc4,
0x43, 0xeb, 0x30, 0x37, 0x7c, 0x36, 0x42, 0x3c, 0x72, 0xe1, 0xa9, 0x4a, 0x3d, 0x9f, 0xd0, 0x10,
0x0f, 0xdd, 0x81, 0x05, 0xf1, 0x25, 0x06, 0xad, 0x8c, 0x8e, 0x92, 0xc2, 0xbb, 0x91, 0x7a, 0x31,
0x43, 0xcb, 0xc3, 0x4e, 0xbe, 0x97, 0x44, 0x61, 0x67, 0xbc, 0xcb, 0x44, 0x61, 0x67, 0x3e, 0xb0,
0xb4, 0x60, 0xb9, 0x95, 0xed, 0xa8, 0x95, 0xeb, 0xa8, 0x75, 0x8a, 0xa3, 0x8c, 0x44, 0x66, 0xbc,
0x10, 0x08, 0x8e, 0x52, 0x89, 0x6c, 0x32, 0x96, 0x8b, 0x97, 0x64, 0xf4, 0xda, 0xd0, 0x3a, 0x71,
0x09, 0x57, 0x95, 0xec, 0x01, 0xe2, 0xa1, 0x43, 0x58, 0x3b, 0xed, 0x20, 0x87, 0xae, 0x16, 0x39,
0xb8, 0xab, 0xd7, 0x0a, 0x58, 0x11, 0x0f, 0x7d, 0x0b, 0xb5, 0xd6, 0xc8, 0x26, 0xbb, 0x45, 0xa1,
0x9b, 0x67, 0x69, 0xf0, 0xea, 0xad, 0x33, 0x58, 0x13, 0x0f, 0x1d, 0xc1, 0xda, 0xbd, 0x6e, 0x37,
0x1f, 0xed, 0xf5, 0x82, 0xf7, 0x66, 0xb5, 0x5e, 0xcc, 0x90, 0x78, 0xe8, 0x39, 0x5c, 0x69, 0xe2,
0x1e, 0x1e, 0x45, 0xf7, 0x92, 0x21, 0x6f, 0x5e, 0xfe, 0xe2, 0xd2, 0x8e, 0x87, 0x9d, 0xfd, 0x6d,
0x5d, 0xf8, 0xeb, 0xa8, 0x4f, 0xac, 0x3b, 0x7d, 0x62, 0x3d, 0xa9, 0x30, 0xf1, 0xdd, 0x7f, 0x02,
0x00, 0x00, 0xff, 0xff, 0xa6, 0x82, 0xfe, 0x0e, 0xa3, 0x1a, 0x00, 0x00,
func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_a1760b784e1ce32d) }
var fileDescriptor_msg_a1760b784e1ce32d = []byte{
// 1577 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4f, 0x6f, 0xdb, 0xc6,
0x12, 0x07, 0x49, 0x4b, 0xb6, 0x47, 0x76, 0xec, 0xac, 0x1d, 0x3f, 0x86, 0x31, 0x10, 0x3d, 0xbe,
0xe4, 0x45, 0x79, 0x2f, 0x91, 0x51, 0xb7, 0x40, 0x8a, 0xe6, 0xd0, 0xc4, 0x91, 0xab, 0x18, 0x29,
0xeb, 0x98, 0x72, 0x5b, 0xa0, 0x3d, 0x38, 0x8c, 0xb4, 0x66, 0x08, 0x4b, 0x24, 0xcd, 0xa5, 0x62,
0xab, 0x45, 0xd3, 0x53, 0x4f, 0x45, 0x0e, 0xed, 0xad, 0xa7, 0xde, 0xfa, 0x1d, 0x7a, 0xec, 0xa5,
0xd7, 0xde, 0xfb, 0x15, 0xfa, 0x25, 0x8a, 0xdd, 0xa5, 0xa4, 0xe5, 0x3f, 0x8b, 0x56, 0x8a, 0x20,
0x05, 0x7a, 0xd3, 0xec, 0xce, 0xce, 0xce, 0x6f, 0xe6, 0xc7, 0x9d, 0xdd, 0x11, 0x2c, 0xf6, 0x88,
0xbd, 0xd1, 0x23, 0x76, 0xdd, 0x0f, 0xbc, 0xd0, 0x43, 0x4a, 0x8f, 0xd8, 0x5a, 0x6d, 0xd7, 0xc7,
0xee, 0xed, 0x1d, 0xe3, 0x76, 0x0b, 0x07, 0xcf, 0x71, 0xb0, 0xe1, 0x1f, 0xd9, 0x1b, 0x6c, 0x7a,
0x83, 0x74, 0x8e, 0x0e, 0x4e, 0xc8, 0xc6, 0x09, 0xe1, 0xea, 0x5a, 0x7d, 0xa2, 0x66, 0x60, 0xf9,
0x3e, 0x0e, 0x22, 0x7d, 0xfd, 0x4b, 0xa8, 0x18, 0xc4, 0x6e, 0x58, 0xa1, 0xb5, 0xef, 0x19, 0x7b,
0x68, 0x15, 0x4a, 0xa1, 0x77, 0x84, 0x5d, 0x55, 0xaa, 0x4a, 0xb5, 0x79, 0x93, 0x0b, 0xa8, 0x0a,
0x15, 0xcf, 0xc7, 0x81, 0x15, 0x3a, 0x9e, 0xbb, 0xd3, 0x50, 0x65, 0x36, 0x27, 0x0e, 0xa1, 0x77,
0x60, 0xb6, 0xc7, 0xcd, 0xa8, 0x4a, 0x55, 0xaa, 0x55, 0x36, 0xb5, 0x3a, 0x61, 0x0e, 0x1c, 0x58,
0xbe, 0x73, 0xe0, 0x5b, 0x81, 0xd5, 0x23, 0xf5, 0x68, 0x23, 0x73, 0xa8, 0xaa, 0x63, 0x61, 0xf3,
0xc6, 0x96, 0x68, 0x44, 0x2a, 0x6c, 0x64, 0xb2, 0x73, 0xfa, 0x4b, 0x09, 0x96, 0x1e, 0xf7, 0xc9,
0x33, 0x11, 0x68, 0x15, 0x2a, 0xbb, 0xc2, 0x2a, 0x0e, 0x57, 0x1c, 0x12, 0xbd, 0x91, 0x8b, 0x7b,
0xa3, 0xc3, 0x82, 0xdf, 0x27, 0xcf, 0xf6, 0xbd, 0x8f, 0x09, 0x0e, 0x76, 0x1a, 0x2c, 0x1a, 0xf3,
0x66, 0x6c, 0x4c, 0xff, 0x49, 0x02, 0x34, 0xf6, 0xc5, 0x73, 0x6d, 0x6f, 0x6b, 0x60, 0xec, 0x21,
0x15, 0x66, 0xbb, 0x16, 0x09, 0x5b, 0xf8, 0x98, 0xb9, 0x33, 0x63, 0x0e, 0x45, 0x74, 0x0d, 0x16,
0x2d, 0xdb, 0x0e, 0xb0, 0x1d, 0x07, 0x19, 0x1f, 0x44, 0x9b, 0x50, 0xe9, 0x61, 0x42, 0x2c, 0x1b,
0x7f, 0xe8, 0x90, 0x50, 0x55, 0xaa, 0x4a, 0xad, 0xb2, 0xb9, 0x5c, 0xa7, 0x54, 0x12, 0x90, 0x9b,
0xa2, 0x12, 0x5a, 0x87, 0xf9, 0x30, 0x70, 0x6c, 0x9b, 0xf9, 0x3a, 0xc3, 0xac, 0x8e, 0x07, 0xf4,
0x8f, 0x00, 0x35, 0x71, 0x68, 0x58, 0xa7, 0xf7, 0xdd, 0x8e, 0xe1, 0xb8, 0x2d, 0x7c, 0x6c, 0xe2,
0x63, 0xb4, 0x06, 0xe5, 0x08, 0x1c, 0x8f, 0x5a, 0x24, 0x25, 0x43, 0x2a, 0xa7, 0x42, 0xaa, 0x9f,
0xc0, 0x4a, 0xca, 0x1e, 0xf1, 0x29, 0xf0, 0xed, 0x20, 0x78, 0xe0, 0x75, 0x30, 0xb3, 0x58, 0x32,
0x87, 0x22, 0xdd, 0x6a, 0x3b, 0x08, 0x0c, 0x62, 0x47, 0xd6, 0x22, 0x89, 0x8e, 0x1b, 0xd6, 0x29,
0x8d, 0x14, 0x8d, 0xef, 0xa2, 0x19, 0x49, 0x6c, 0x9c, 0xd9, 0x65, 0x58, 0xe8, 0x38, 0x93, 0xf4,
0x2f, 0x00, 0x5a, 0xd8, 0xed, 0x18, 0xc4, 0xa6, 0x00, 0x5e, 0x2f, 0xc9, 0x7f, 0x94, 0xa0, 0x32,
0xda, 0x9c, 0xa3, 0xc5, 0x71, 0xb4, 0x78, 0x8c, 0x16, 0xc7, 0xd0, 0x72, 0x89, 0x7a, 0xc6, 0xf7,
0x31, 0x88, 0x3d, 0x4a, 0x93, 0x38, 0x44, 0x35, 0xda, 0x5d, 0x07, 0xbb, 0x21, 0xd7, 0x28, 0x71,
0x0d, 0x61, 0x08, 0x69, 0x30, 0x47, 0xb0, 0xdb, 0xd9, 0x77, 0x7a, 0x58, 0x2d, 0x57, 0xa5, 0x9a,
0x62, 0x8e, 0x64, 0xbd, 0x0d, 0x95, 0x07, 0x5d, 0x6c, 0x05, 0x51, 0x78, 0xd6, 0xa0, 0xdc, 0x8f,
0xe5, 0x97, 0x4b, 0xd4, 0x84, 0xe7, 0x47, 0x99, 0xe7, 0x0e, 0x8e, 0xe4, 0x64, 0xf0, 0x94, 0xf4,
0x47, 0x78, 0x0f, 0x16, 0xc6, 0x9b, 0x4c, 0x13, 0x06, 0xfd, 0x07, 0x09, 0x96, 0x5a, 0x98, 0xe2,
0x89, 0x71, 0x31, 0xd3, 0x57, 0x15, 0x66, 0xed, 0xc0, 0xeb, 0xfb, 0x23, 0x57, 0x87, 0x22, 0x5d,
0xd1, 0xe3, 0x14, 0x89, 0xa8, 0xc3, 0xa5, 0x24, 0x82, 0x99, 0x74, 0xfa, 0x45, 0xfc, 0xa5, 0x38,
0x7e, 0xbd, 0x01, 0xcb, 0x71, 0xd7, 0xa6, 0x42, 0xb8, 0x0b, 0x2b, 0x2d, 0x1c, 0x46, 0x64, 0x69,
0x85, 0x56, 0xd8, 0x27, 0x66, 0xda, 0x35, 0x29, 0xed, 0xda, 0x1a, 0x94, 0x09, 0x53, 0x67, 0x06,
0x4b, 0x66, 0x24, 0xe9, 0x0f, 0x61, 0x35, 0x6d, 0x70, 0x2a, 0xd7, 0xee, 0xb0, 0x4f, 0xf7, 0xfc,
0xae, 0xe9, 0x4f, 0x60, 0xb5, 0xf9, 0x97, 0xb8, 0x20, 0x80, 0x54, 0x62, 0x20, 0xbf, 0x91, 0x60,
0xa5, 0x81, 0xbb, 0xad, 0xbe, 0x8f, 0x83, 0x26, 0xcd, 0x72, 0xc4, 0x63, 0x31, 0x5f, 0x52, 0x82,
0xaf, 0x63, 0xde, 0xc8, 0x79, 0xbc, 0x51, 0xe2, 0xbc, 0x99, 0xc8, 0x0f, 0x1a, 0xec, 0xb4, 0x1b,
0x53, 0x05, 0xbb, 0xcd, 0x83, 0x9d, 0x04, 0x34, 0x99, 0x07, 0xcb, 0xa0, 0x50, 0x66, 0xcb, 0x8c,
0xd9, 0xf4, 0x67, 0x3e, 0x20, 0xfd, 0x05, 0x4f, 0xcc, 0xab, 0xbb, 0x3b, 0xe5, 0xb9, 0xf8, 0x90,
0x15, 0x97, 0x4f, 0x03, 0x27, 0xc4, 0x0d, 0xe7, 0xf0, 0x70, 0x7a, 0x8c, 0xfa, 0x57, 0x2c, 0x5c,
0x71, 0x4b, 0xaf, 0x11, 0xc8, 0x77, 0x25, 0xd0, 0x0d, 0xaf, 0xe3, 0x1c, 0x0e, 0x0c, 0x5e, 0x59,
0x4d, 0x6c, 0xb5, 0xa9, 0xb3, 0xdb, 0xa7, 0x21, 0x76, 0x89, 0xe3, 0xb9, 0x05, 0xbf, 0x62, 0x7a,
0x46, 0x7b, 0xfd, 0xa0, 0x8d, 0xc7, 0x07, 0xec, 0x50, 0x8e, 0x91, 0x59, 0x49, 0x1f, 0xbe, 0x04,
0x13, 0xba, 0xd1, 0xfe, 0xc0, 0xc7, 0x8c, 0x9a, 0x25, 0x53, 0x1c, 0x42, 0xa7, 0x70, 0x29, 0x48,
0x3a, 0xc5, 0x2e, 0x09, 0x25, 0x76, 0x49, 0xd8, 0xe2, 0x97, 0x84, 0x89, 0x18, 0xea, 0x66, 0x96,
0x91, 0x6d, 0x37, 0x0c, 0x06, 0x66, 0xf6, 0x06, 0xc9, 0xca, 0x54, 0x4e, 0x57, 0xa6, 0x5b, 0x20,
0xe3, 0x53, 0x75, 0x96, 0xc5, 0x7b, 0xbd, 0x6e, 0x7b, 0x9e, 0xdd, 0xc5, 0xfc, 0x72, 0xfa, 0xb4,
0x7f, 0x58, 0x6f, 0x85, 0x81, 0xe3, 0xda, 0x9f, 0x58, 0xdd, 0x3e, 0x36, 0x65, 0x7c, 0x8a, 0xee,
0xc1, 0x82, 0x15, 0x86, 0x56, 0xfb, 0x19, 0xee, 0xec, 0xb8, 0x87, 0x9e, 0x3a, 0x57, 0x60, 0x5d,
0x6c, 0x05, 0xa5, 0x85, 0x43, 0x18, 0x10, 0x75, 0xbe, 0x2a, 0xd5, 0xe6, 0xcc, 0xa1, 0x88, 0x36,
0x61, 0xd5, 0x21, 0xd4, 0xfd, 0xc0, 0xb5, 0xba, 0x63, 0xe0, 0x2a, 0x30, 0xb5, 0xcc, 0x39, 0x54,
0x07, 0xd4, 0x23, 0xf6, 0x07, 0x4e, 0x40, 0x42, 0x1e, 0x3f, 0x56, 0x61, 0x2b, 0xac, 0xc2, 0x66,
0xcc, 0x68, 0x18, 0xb4, 0xfc, 0x20, 0x52, 0x6e, 0x1f, 0xe1, 0x41, 0xc4, 0x0d, 0xfa, 0x13, 0xbd,
0x05, 0xa5, 0xe7, 0x14, 0x44, 0x74, 0x07, 0xbd, 0x92, 0x41, 0xc8, 0x47, 0x78, 0xc0, 0x71, 0x72,
0xcd, 0xf7, 0xe4, 0x77, 0x25, 0xfd, 0xdb, 0x12, 0x5c, 0xa5, 0x05, 0xe9, 0x4d, 0x25, 0x64, 0xff,
0x6c, 0x42, 0xbe, 0xcf, 0x08, 0x39, 0x01, 0xc0, 0x3f, 0x6c, 0xfc, 0xbb, 0xb0, 0xf1, 0x0f, 0x09,
0xaa, 0x67, 0x27, 0x73, 0xda, 0x7b, 0xb1, 0x98, 0x4d, 0x25, 0x9d, 0xcd, 0xec, 0x78, 0xcc, 0xe4,
0xc5, 0x43, 0xcc, 0x46, 0x29, 0x9e, 0x8d, 0x9b, 0x50, 0x0e, 0x30, 0xe9, 0x77, 0x43, 0xb5, 0xcc,
0x18, 0x7a, 0x91, 0x31, 0x74, 0x04, 0x16, 0x13, 0xdf, 0x8c, 0x14, 0xf4, 0x5f, 0x24, 0xf8, 0xcf,
0xc4, 0xb3, 0x74, 0xca, 0xfa, 0x54, 0x21, 0xfd, 0x76, 0x1b, 0x13, 0x22, 0xbc, 0xf0, 0x10, 0xf3,
0x84, 0xd9, 0x1e, 0xbe, 0x31, 0x4c, 0x51, 0x0d, 0x6d, 0x02, 0x1c, 0x5a, 0x4e, 0x17, 0x77, 0xd8,
0xa2, 0x99, 0xdc, 0x45, 0x82, 0x96, 0xfe, 0xbb, 0x02, 0x37, 0xf8, 0xcb, 0x0d, 0x1b, 0xe3, 0xe7,
0xe2, 0x2b, 0x9c, 0x23, 0xb9, 0x2f, 0x07, 0xf1, 0x8c, 0x51, 0x12, 0x67, 0xcc, 0xe4, 0x73, 0xe4,
0x04, 0xd6, 0x7a, 0xf1, 0x20, 0x3f, 0xc2, 0x83, 0xd4, 0x41, 0x52, 0x10, 0x49, 0xdd, 0x48, 0x99,
0x32, 0x73, 0xcc, 0x6b, 0x3f, 0xd3, 0x37, 0x7c, 0x6a, 0x2a, 0x49, 0x49, 0xa9, 0x28, 0x25, 0xe5,
0x5c, 0x4a, 0xee, 0xe5, 0x9d, 0x94, 0x3c, 0xfb, 0x67, 0x7e, 0x82, 0xd9, 0x2b, 0xf5, 0x5f, 0x25,
0xa8, 0x15, 0x0b, 0xc9, 0x1b, 0xce, 0x52, 0x0f, 0x16, 0x63, 0x93, 0xe8, 0x16, 0xcc, 0xe3, 0xe1,
0x40, 0xd4, 0x43, 0xba, 0x90, 0xb0, 0x31, 0x56, 0x10, 0xa1, 0xc9, 0x79, 0xd0, 0x94, 0xd8, 0xc5,
0xfc, 0x37, 0x19, 0xe6, 0x47, 0xa6, 0xd0, 0x41, 0x5e, 0x6a, 0x24, 0xe6, 0xfd, 0xcd, 0xf8, 0xce,
0xaf, 0x5e, 0xae, 0xe4, 0xa2, 0x6c, 0x52, 0x72, 0xd9, 0xa4, 0x27, 0x0a, 0x16, 0x7f, 0xc6, 0xc4,
0x4b, 0xd2, 0x05, 0x56, 0x02, 0xf9, 0x0b, 0x57, 0xc6, 0xa7, 0xda, 0xe7, 0xe7, 0x2c, 0x12, 0x37,
0xe2, 0x45, 0x22, 0xe3, 0xa4, 0x14, 0x4a, 0xc3, 0x00, 0x16, 0xc4, 0x29, 0x74, 0x07, 0xe6, 0x8e,
0x22, 0x39, 0x4a, 0xe0, 0x99, 0x0c, 0x1f, 0x29, 0x4f, 0x91, 0xcc, 0x97, 0x12, 0xac, 0x08, 0x6d,
0x38, 0x1a, 0x23, 0xd6, 0x87, 0x4b, 0x75, 0xdb, 0xa4, 0x02, 0xdd, 0x36, 0xf9, 0xdc, 0xdd, 0x36,
0x25, 0xd1, 0x6d, 0xdb, 0xfc, 0x1e, 0x40, 0xe9, 0x11, 0x1b, 0x3d, 0x81, 0xa5, 0x44, 0x97, 0x0c,
0x5d, 0xcf, 0x88, 0x41, 0xba, 0x33, 0xa7, 0xfd, 0xb7, 0x88, 0x1a, 0xf1, 0x91, 0x07, 0xab, 0x8f,
0xfb, 0xdd, 0x6e, 0xf4, 0xf1, 0x6f, 0x0d, 0x5a, 0xf8, 0x98, 0xf9, 0xf7, 0xbf, 0x8c, 0xf5, 0x59,
0x8a, 0x74, 0xaf, 0xff, 0x17, 0xd6, 0x65, 0xdf, 0xe5, 0x6c, 0xd4, 0x01, 0x40, 0x4b, 0xd1, 0xd5,
0x6e, 0xd8, 0x8d, 0xd3, 0x96, 0xe3, 0x03, 0xc4, 0x47, 0x7b, 0x00, 0x0d, 0xdc, 0x35, 0x88, 0xcd,
0x3f, 0x82, 0x8c, 0x8d, 0xc6, 0xd3, 0xd4, 0xc2, 0xbf, 0x27, 0x68, 0x10, 0x1f, 0x35, 0x61, 0x39,
0xf9, 0x36, 0x47, 0x2a, 0xdb, 0x38, 0xa3, 0x73, 0xa0, 0x5d, 0xce, 0x99, 0x21, 0x3e, 0xda, 0x80,
0xb9, 0x61, 0x1b, 0x0b, 0x71, 0xcf, 0x85, 0xd6, 0x99, 0x76, 0x31, 0x31, 0x42, 0x7c, 0x74, 0x17,
0x16, 0xc4, 0xce, 0x10, 0x5a, 0x1d, 0x5d, 0x6d, 0x85, 0x3e, 0x96, 0x76, 0x29, 0x63, 0x94, 0xbb,
0x9d, 0xec, 0xdf, 0x44, 0x6e, 0x67, 0xf4, 0x89, 0x22, 0xb7, 0x33, 0x1b, 0x3e, 0x4d, 0x58, 0x6e,
0x66, 0x1b, 0x6a, 0xe6, 0x1a, 0x6a, 0x9e, 0x61, 0x28, 0x23, 0x90, 0x19, 0x1d, 0x0b, 0xc1, 0x50,
0x2a, 0x90, 0x0d, 0xc6, 0x72, 0xf1, 0xd1, 0x8e, 0xfe, 0x35, 0xd4, 0x4e, 0x34, 0x05, 0x34, 0x35,
0x7b, 0x82, 0xf8, 0xe8, 0x08, 0xd6, 0xcf, 0xba, 0x58, 0xa2, 0x6b, 0x45, 0x1e, 0x12, 0xda, 0xf5,
0x02, 0x5a, 0xc4, 0x47, 0x5f, 0x43, 0xb5, 0x39, 0xd2, 0xc9, 0x2e, 0x99, 0xe8, 0xd6, 0x79, 0x2e,
0x1c, 0xda, 0xed, 0x73, 0x68, 0x13, 0x1f, 0x1d, 0xc3, 0xfa, 0xfd, 0x4e, 0x27, 0x1f, 0xed, 0x8d,
0x82, 0xef, 0x78, 0xad, 0x56, 0x4c, 0x91, 0xf8, 0xe8, 0x05, 0x5c, 0x6d, 0xe0, 0x2e, 0x1e, 0x79,
0xf7, 0x9a, 0x21, 0x6f, 0x5d, 0xf9, 0xec, 0xf2, 0xae, 0x8f, 0xdd, 0x83, 0x1d, 0x43, 0xf8, 0x2b,
0xab, 0x47, 0xec, 0xbb, 0x3d, 0x62, 0x3f, 0x2d, 0x33, 0xf1, 0xed, 0x3f, 0x03, 0x00, 0x00, 0xff,
0xff, 0x57, 0xed, 0x19, 0x89, 0x33, 0x1b, 0x00, 0x00,
}

@ -236,6 +236,13 @@ message KeyValueResp {
string errMsg = 3;
}
message MsgDataToModifyByMQ{
string aggregationID = 1;
repeated MsgDataToMQ messageList = 2;
string triggerID = 3;
}
service msg {
rpc GetMaxAndMinSeq(server_api_params.GetMaxAndMinSeqReq) returns(server_api_params.GetMaxAndMinSeqResp);
rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp);

Loading…
Cancel
Save