| | |
| | | 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" |
| | |
| | | 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 实时获取生产进度 |