diff --git a/config/config.yaml b/config/config.yaml index 643ee88a4..552290e6b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -227,6 +227,8 @@ multiloginpolicy: 1 chatpersistencemysql: true #可靠性存储 reliablestorage: false +#消息缓存时间 +msgCacheTimeout: 60 * 60 #token config tokenpolicy: diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 290e63ec2..76e80767e 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -218,6 +218,7 @@ type config struct { MultiLoginPolicy int `yaml:"multiloginpolicy"` ChatPersistenceMysql bool `yaml:"chatpersistencemysql"` ReliableStorage bool `yaml:"reliablestorage"` + MsgCacheTimeout int `yaml:"msgCacheTimeout"` TokenPolicy struct { AccessSecret string `yaml:"accessSecret"` diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 2596038a0..05c721174 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -1,6 +1,7 @@ package db import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/chat" @@ -296,9 +297,10 @@ func (d *DataBases) SetMessageToCache(msgList []*pbChat.MsgDataToMQ, uid string) log2.NewWarn("", utils.GetSelfFuncName(), "Pb2Map failed", *msg.MsgData, uid, err.Error()) continue } - _, err = d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) + log2.NewDebug("", "m", m) + _, err = d.Exec("hmset", key, redis.Args{}.Add("TIMEOUT", config.Config.MsgCacheTimeout).AddFlat(m)...) if err != nil { - log2.NewWarn("", utils.GetSelfFuncName(), "redis failed", "args:", key, *msg, uid) + log2.NewWarn("", utils.GetSelfFuncName(), "redis failed", "args:", key, *msg, uid, m) failedList = append(failedList, *msg) } }