This commit is contained in:
laodaming
2023-08-07 11:15:51 +08:00
parent a106082364
commit 8e4e1c1cfd
4 changed files with 30 additions and 24 deletions

View File

@@ -270,9 +270,9 @@ func (w *wsConnectItem) dealwithReciveData(data []byte) {
d, _ := json.Marshal(parseInfo.D)
//分消息类型给到不同逻辑处理,可扩展
switch parseInfo.T {
//图片渲染
case constants.WEBSOCKET_RENDER_IMAGE:
w.SendToCloudRender(d)
//图片渲染数据组装
case constants.WEBSOCKET_RENDER_IMAGE_ASSEMBLE:
w.assembleRenderData(d)
default:
}

View File

@@ -21,8 +21,13 @@ type renderImageControlChanItem struct {
RenderId string // map的val
}
// 渲染请求数据处理发送云渲染服务处理
func (w *wsConnectItem) SendToCloudRender(data []byte) {
// 渲染发送到组装数据组装数据
type assembleRenderData struct {
TaskId string `json:"task_id"`
RenderData interface{} `json:"render_data"`
}
func (w *wsConnectItem) assembleRenderData(data []byte) {
var renderImageData types.RenderImageReqMsg
if err := json.Unmarshal(data, &renderImageData); err != nil {
w.outChan <- w.respondDataFormat(constants.WEBSOCKET_ERR_DATA_FORMAT, "invalid format of websocket render image message:"+string(data))
@@ -31,24 +36,23 @@ func (w *wsConnectItem) SendToCloudRender(data []byte) {
}
logx.Info("收到请求云渲染图片数据:", renderImageData)
//把需要渲染的图片任务加进去
select {
case <-w.closeChan: //连接关闭了
return
default:
//加入渲染任务
taskId := hash.JsonHashKey(renderImageData.RenderData)
w.renderProperty.renderImageTaskCtlChan <- renderImageControlChanItem{
Option: 1, //0删除 1添加
TaskId: taskId,
RenderId: renderImageData.RenderId,
}
//发送给对应的流水线组装数据
if err := w.rabbitMq.SendMsg(constants.RABBIT_MQ_ASSEMBLE_RENDER_DATA, data); err != nil {
logx.Error("发送渲染任务数据到MQ失败:", string(data), "err:", err)
return
}
logx.Info("发送渲染数据到rabbitmq成功:", string(data))
taskId := hash.JsonHashKey(renderImageData.RenderData)
w.renderProperty.renderImageTaskCtlChan <- renderImageControlChanItem{
Option: 1, //0删除 1添加
TaskId: taskId,
RenderId: renderImageData.RenderId,
}
tmpData := assembleRenderData{
TaskId: taskId,
RenderData: renderImageData.RenderData,
}
d, _ := json.Marshal(tmpData)
//发送给对应的流水线组装数据
if err := w.rabbitMq.SendMsg(constants.RABBIT_MQ_ASSEMBLE_RENDER_DATA, d); err != nil {
logx.Error("发送渲染任务数据到MQ失败:", string(data), "err:", err)
return
}
logx.Info("发送渲染数据到rabbitmq成功:", string(data))
}
// 操作连接中渲染任务的增加/删除