修改知识库服务器分配,修改超时服务器超时返回

This commit is contained in:
junleea 2025-04-11 14:24:01 +08:00
parent d17facf9f8
commit a97079747e
1 changed files with 6 additions and 6 deletions

View File

@ -290,11 +290,12 @@ func SelectKBaseContentByQuery(imCtx *proto.IMParamContext, data *proto.WSMessag
//先查看改知识库是否已经创建
key := fmt.Sprintf("kbase_%s", kbase.UUID)
KBaseServerID := worker.GetRedis(key)
//若未分配
//若未分配,从可用的知识库服务器中进行分配
setKey := "kbase_server_id_set_is_available" //可用状态集合
if KBaseServerID == "" {
KBaseServerSet := "kbase_server_id_set"
//KBaseServerSet := "kbase_server_id_set"
//进行分配
KBaseServerID = worker.GetRedisSetRandomMember(KBaseServerSet)
KBaseServerID = worker.GetRedisSetRandomMember(setKey)
if KBaseServerID == "" {
return errors.New("no kbase server id")
}
@ -302,7 +303,6 @@ func SelectKBaseContentByQuery(imCtx *proto.IMParamContext, data *proto.WSMessag
res := worker.SetRedisWithExpire(key, KBaseServerID, time.Hour*24*7)
log.Println("分配的知识库服务器ID:", KBaseServerID, "\t key:", key, "\tset:", res)
}
setKey := "kbase_server_id_set_is_available" //可用状态集合
//查看KBaseServerID是否可用
isAvailable := worker.SetRedisSetIsMember(setKey, KBaseServerID)
if isAvailable == false {
@ -313,14 +313,14 @@ func SelectKBaseContentByQuery(imCtx *proto.IMParamContext, data *proto.WSMessag
reqChanel := fmt.Sprintf("kbase_server_id_%s", KBaseServerID) // 频道名称
reqStr, _ := json.Marshal(req)
//将消息转发到对应频道
worker.Publish(reqChanel, string(reqStr), time.Second*60)
worker.Publish(reqChanel, string(reqStr), time.Minute*3)
chanel := fmt.Sprintf("kbase_%s", kbase.UUID) //获取返回消息频道
pubsub := worker.RedisClient.Subscribe(context.Background(), chanel)
defer pubsub.Close()
ch := pubsub.Channel()
//1min定时器超时则返回错误
timer := time.NewTimer(time.Second * 30)
timer := time.NewTimer(time.Minute * 3)
var resp proto.KnowledgeBaseServerResponse
select {
case m := <-ch: