fix
This commit is contained in:
parent
b9afdf1dda
commit
16feddfe3e
|
@ -241,37 +241,30 @@ func (w *wsConnectItem) dealwithReciveData(data []byte) {
|
||||||
key := w.getRenderImageMapKey(v.ProductId, v.SizeId, v.TemplateId)
|
key := w.getRenderImageMapKey(v.ProductId, v.SizeId, v.TemplateId)
|
||||||
w.renderImage[key] = struct{}{}
|
w.renderImage[key] = struct{}{}
|
||||||
}
|
}
|
||||||
|
//TODO 发送数据到云渲染服务器
|
||||||
default:
|
default:
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 把渲染好的数据放入outchan
|
// 把要传递给客户端的数据放入outchan
|
||||||
func (w *wsConnectItem) setOutRenderImage(req *types.RenderNotifyReq) {
|
func (w *wsConnectItem) sendToOutChan(data [][]byte) {
|
||||||
w.mutex.Lock()
|
for _, v := range data {
|
||||||
defer w.mutex.Unlock()
|
|
||||||
for _, notifyItem := range req.NotifyList {
|
|
||||||
renderKey := w.getRenderImageMapKey(notifyItem.ProductId, notifyItem.SizeId, notifyItem.TemplateId)
|
|
||||||
//查询
|
|
||||||
_, ok := w.renderImage[renderKey]
|
|
||||||
if !ok {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
responseData := types.RenderImageRspMsg{
|
|
||||||
ProductId: notifyItem.ProductId,
|
|
||||||
SizeId: notifyItem.SizeId,
|
|
||||||
TemplateId: notifyItem.TemplateId,
|
|
||||||
Source: "我是渲染资源",
|
|
||||||
}
|
|
||||||
b, _ := json.Marshal(responseData)
|
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan:
|
case <-w.closeChan:
|
||||||
return
|
return
|
||||||
case w.outChan <- b:
|
case w.outChan <- v:
|
||||||
logx.Info("notify send render result to out chan")
|
logx.Info("notify send render result to out chan")
|
||||||
}
|
}
|
||||||
//删掉已经处理的渲染任务
|
}
|
||||||
delete(w.renderImage, renderKey)
|
}
|
||||||
|
|
||||||
|
// 删除对应需要渲染的map值
|
||||||
|
func (w *wsConnectItem) deleteRenderMapVal(keys []string) {
|
||||||
|
w.mutex.Lock()
|
||||||
|
defer w.mutex.Unlock()
|
||||||
|
for _, v := range keys {
|
||||||
|
delete(w.renderImage, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,11 +58,35 @@ func (l *RenderNotifyLogic) RenderNotify(req *types.RenderNotifyReq) (resp *basi
|
||||||
}
|
}
|
||||||
//遍历websocket链接把数据传进去
|
//遍历websocket链接把数据传进去
|
||||||
mapConnPool.Range(func(key, value any) bool {
|
mapConnPool.Range(func(key, value any) bool {
|
||||||
|
//断言连接
|
||||||
ws, ok := value.(wsConnectItem)
|
ws, ok := value.(wsConnectItem)
|
||||||
if !ok {
|
if !ok {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
ws.setOutRenderImage(req)
|
dataList := make([][]byte, 0, len(req.NotifyList))
|
||||||
|
deleteRenderKey := make([]string, 0, len(req.NotifyList))
|
||||||
|
//遍历数据
|
||||||
|
for _, notifyItem := range req.NotifyList {
|
||||||
|
renderKey := ws.getRenderImageMapKey(notifyItem.ProductId, notifyItem.SizeId, notifyItem.TemplateId)
|
||||||
|
//查询
|
||||||
|
_, ok = ws.renderImage[renderKey]
|
||||||
|
if !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
responseData := types.RenderImageRspMsg{
|
||||||
|
ProductId: notifyItem.ProductId,
|
||||||
|
SizeId: notifyItem.SizeId,
|
||||||
|
TemplateId: notifyItem.TemplateId,
|
||||||
|
Source: "我是渲染资源",
|
||||||
|
}
|
||||||
|
b, _ := json.Marshal(responseData)
|
||||||
|
dataList = append(dataList, b)
|
||||||
|
deleteRenderKey = append(deleteRenderKey, renderKey)
|
||||||
|
}
|
||||||
|
//删除对应的需要渲染的图片map
|
||||||
|
ws.deleteRenderMapVal(deleteRenderKey)
|
||||||
|
//发送数据
|
||||||
|
ws.sendToOutChan(dataList)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
return resp.SetStatus(basic.CodeOK)
|
return resp.SetStatus(basic.CodeOK)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user