package watchdog import ( "fmt" "super-frpc/postLog" "super-frpc/utils" ) func AddInstance(serviceName string) bool { postLog.Debug(fmt.Sprintf("[watchdog] Add service monitor: %s", serviceName)) if !IsConnected() { return false } message := fmt.Sprintf("[monitor.add] %s", serviceName) response, err := sendMsg(message, 3) if err != nil { return false } else if response == "success" { return true } return false } func RemoveInstance(serviceName string) bool { postLog.Debug(fmt.Sprintf("[watchdog] Remove service monitor: %s", serviceName)) if !IsConnected() { return false } message := fmt.Sprintf("[monitor.remove] %s", serviceName) response, err := sendMsg(message, 3) if err != nil { return false } else if response == "success" { return true } return false } func CloseInstance(serviceName string) bool { postLog.Debug(fmt.Sprintf("[watchdog] Remove service monitor: %s", serviceName)) if !IsConnected() { return false } message := fmt.Sprintf("[instance.remove] %s", serviceName) response, err := sendMsg(message, 3) if err != nil { return false } else if response == "success" { return true } return false } func Close() bool { if !IsConnected() { return false } message := "watchdog.shutdown" response, err := sendMsg(message, 3) if err != nil { return false } else if response == "success" { return true } return false } func parseCommand(cmd string) (result string, err error) { cmdType := utils.GetCmdType(cmd) if cmdType == "Exception" { // Watchdog msg: [Exception] ... ... ... exceptionType := utils.GetCmdParams(cmd, "exceptionType") serviceName := utils.GetCmdParams(cmd, "serviceName") errorMsg := utils.GetCmdParams(cmd, "errorMsg") postLog.Error(fmt.Sprintf("[Watchdog] Exception[%s]: %s, %s", serviceName, exceptionType, errorMsg)) exceptionHandle(exceptionType, serviceName, errorMsg) } return "", nil }