diff --git a/handler/restart/restart.go b/handler/restart/restart.go index be5e352..d85761f 100644 --- a/handler/restart/restart.go +++ b/handler/restart/restart.go @@ -173,7 +173,10 @@ func buildBot() error { } func PullCodeHandler(c *gin.Context) { - stuffMutex.Lock() + if !stuffMutex.TryLock() { + c.JSON(http.StatusInternalServerError, gin.H{"error": "有其他请求正在运行,请稍后再试"}) + return + } defer stuffMutex.Unlock() err := util.GitPull() log.Println("拉取代码...") @@ -186,7 +189,10 @@ func PullCodeHandler(c *gin.Context) { } func BuildBotHandler(c *gin.Context) { - stuffMutex.Lock() + if !stuffMutex.TryLock() { + c.JSON(http.StatusInternalServerError, gin.H{"error": "有其他请求正在运行,请稍后再试"}) + return + } defer stuffMutex.Unlock() err := buildBot() log.Println("构建程序...") @@ -204,7 +210,10 @@ func RestartBotHandler(c *gin.Context) { c.JSON(http.StatusUnauthorized, gin.H{"error": "Unauthorized"}) return } - stuffMutex.Lock() + if !stuffMutex.TryLock() { + c.JSON(http.StatusInternalServerError, gin.H{"error": "有其他请求正在运行,请稍后再试"}) + return + } defer stuffMutex.Unlock() err := restartProgram() log.Println("重启程序...")