zhangqian
2023-10-21 2ea23e2364f742f528fb8b97657212c174d1bbd7
增加切换serf状态接口(调试用)
2个文件已修改
42 ■■■■■ 已修改文件
api/v1/plc.go 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/index.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/plc.go
@@ -3,13 +3,16 @@
import (
    "apsClient/conf"
    "apsClient/constvar"
    "apsClient/crontask"
    "apsClient/model/request"
    "apsClient/model/response"
    _ "apsClient/model/response"
    "apsClient/nsq"
    "apsClient/pkg/contextx"
    "apsClient/pkg/ecode"
    "apsClient/pkg/logx"
    "apsClient/pkg/plc/apacheplc4x"
    "apsClient/serf"
    "apsClient/service"
    "github.com/gin-gonic/gin"
    "github.com/spf13/cast"
@@ -66,6 +69,44 @@
    ctx.Ok()
}
// SetSerfEvent
// @Tags      生产数量
// @Summary   设置生产总量
// @Produce   application/json
// @Success   200   {object}  contextx.Response{data=response.ProductProgress}  "成功"
// @Router    /v1/plc/setSerfEvent [post]
func (slf *PlcApi) SetSerfEvent(c *gin.Context) {
    ctx, ok := contextx.NewContext(c, nil)
    if !ok {
        return
    }
    status := c.Query("status")
    stat := cast.ToInt(status)
    switch stat {
    case serf.EventCreateCluster, serf.EventSlave2Master, serf.EventLeaveCluster:
        if err := nsq.Init(); err != nil { //开启nsq
            logx.Errorf("nsq Init err:%v", err)
            return
        }
        crontask.Once(true)
        if err := crontask.RestartTask(true); err != nil { //以master方式重启task
            logx.Errorf("crontab task Init err:%v", err)
            return
        }
    case serf.EventJoinCluster, serf.EventMaster2Slave:
        nsq.Stop() //关闭nsq
        crontask.Once(false)
        if err := crontask.RestartTask(false); err != nil { //以非master方式重启task
            logx.Errorf("crontab task Init err:%v", err)
            return
        }
    }
    logx.Infof("serf cluster event: %v", stat)
    ctx.Ok()
}
// GetProductProgressRealTime
// @Tags      生产数量
// @Summary   实时获取生产进度
router/index.go
@@ -58,6 +58,7 @@
        plcGroup.POST("productProgress", plcApi.GetProductProgress) // 获取生产进度
        //plcGroup.POST("productProgressRealTime", plcApi.GetProductProgressRealTime) // 实时获取生产进度
        plcGroup.POST("setProductNumber", plcApi.SetProductNumber) // 下发生产总量
        plcGroup.POST("setSerfEvent", plcApi.SetSerfEvent)         // 下发生产总量
    }
    processModelApi := new(v1.ProcessModelApi)