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