fix
This commit is contained in:
parent
d00089c625
commit
745cea9617
@ -193,6 +193,8 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
|
|||||||
guestId: userInfo.GuestId,
|
guestId: userInfo.GuestId,
|
||||||
extendRenderProperty: extendRenderProperty{
|
extendRenderProperty: extendRenderProperty{
|
||||||
renderChan: make(chan websocket_data.RenderImageReqMsg, renderChanLen),
|
renderChan: make(chan websocket_data.RenderImageReqMsg, renderChanLen),
|
||||||
|
colorSelectedIndex: 0,
|
||||||
|
templateTag: "",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
//保存连接
|
//保存连接
|
||||||
|
@ -22,6 +22,8 @@ import (
|
|||||||
var (
|
var (
|
||||||
//每个websocket渲染任务缓冲队列长度默认值
|
//每个websocket渲染任务缓冲队列长度默认值
|
||||||
renderChanLen = 500
|
renderChanLen = 500
|
||||||
|
//每个websocket渲染并发数
|
||||||
|
renderChanConcurrency = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
// 渲染处理器
|
// 渲染处理器
|
||||||
@ -58,9 +60,12 @@ func (r *renderProcessor) allocationMessage(w *wsConnectItem, data []byte) {
|
|||||||
func (w *wsConnectItem) consumeRenderImageData() {
|
func (w *wsConnectItem) consumeRenderImageData() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logx.Error("func renderImage err:", err)
|
logx.Error("func consumeRenderImageData err:", err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
//限制并发
|
||||||
|
limitChan := make(chan struct{}, renderChanConcurrency)
|
||||||
|
defer close(limitChan)
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan: //已关闭
|
case <-w.closeChan: //已关闭
|
||||||
@ -74,20 +79,24 @@ func (w *wsConnectItem) consumeRenderImageData() {
|
|||||||
if data.RenderData.TemplateTagColor.SelectedColorIndex != w.extendRenderProperty.colorSelectedIndex {
|
if data.RenderData.TemplateTagColor.SelectedColorIndex != w.extendRenderProperty.colorSelectedIndex {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
w.renderImage(data)
|
limitChan <- struct{}{}
|
||||||
|
go func(d websocket_data.RenderImageReqMsg) {
|
||||||
|
defer func() {
|
||||||
|
if err := recover(); err != nil {
|
||||||
|
logx.Error("func renderImage err:", err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
defer func() {
|
||||||
|
<-limitChan
|
||||||
|
}()
|
||||||
|
w.renderImage(d)
|
||||||
|
}(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 执行渲染任务
|
// 执行渲染任务
|
||||||
func (w *wsConnectItem) renderImage(renderImageData websocket_data.RenderImageReqMsg) {
|
func (w *wsConnectItem) renderImage(renderImageData websocket_data.RenderImageReqMsg) {
|
||||||
//logx.Info("消费渲染数据:", string(data))
|
|
||||||
/*var renderImageData websocket_data.RenderImageReqMsg
|
|
||||||
if err := json.Unmarshal(data, &renderImageData); err != nil {
|
|
||||||
w.renderErrResponse(renderImageData.RenderId, renderImageData.RenderData.TemplateTag, "", "数据格式错误", renderImageData.RenderData.ProductId, w.userId, w.guestId, 0, 0, 0, 0)
|
|
||||||
logx.Error("invalid format of websocket render image message", err)
|
|
||||||
return
|
|
||||||
}*/
|
|
||||||
if renderImageData.RenderData.Logo == "" {
|
if renderImageData.RenderData.Logo == "" {
|
||||||
w.renderErrResponse(renderImageData.RenderId, renderImageData.RenderData.TemplateTag, "", "请传入logo", renderImageData.RenderData.ProductId, w.userId, w.guestId, 0, 0, 0, 0)
|
w.renderErrResponse(renderImageData.RenderId, renderImageData.RenderData.TemplateTag, "", "请传入logo", renderImageData.RenderData.ProductId, w.userId, w.guestId, 0, 0, 0, 0)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user