server total

This commit is contained in:
2023-05-28 09:50:01 +08:00
parent ed7e09e736
commit cdb4559246
4 changed files with 81 additions and 26 deletions

View File

@@ -1,7 +1,10 @@
package models
import (
"encoding/json"
"fmt"
"main/configs"
"net/http"
"time"
)
@@ -19,6 +22,30 @@ type Server struct {
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
}
func (server *Server) CheckStatus() bool {
resp, err := http.Get(fmt.Sprintf("http://%s:%d/status", server.IP, server.Port))
if err != nil {
return false
}
defer resp.Body.Close()
// 解碼json
var data map[string]interface{}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
return false
}
fmt.Println("data:", data)
// 檢查服務器是否正常
if data["status"] != "ok" {
return false
}
// 檢查服務器是否正常
return true
}
func init() {
configs.ORMDB().AutoMigrate(&Server{})
@@ -30,4 +57,16 @@ func init() {
Port: 7860,
Status: "閒置",
})
// 檢查所有服務器的狀態, 無效的服務器設置為異常
var servers []Server
configs.ORMDB().Find(&servers)
for _, server := range servers {
if server.Status != "異常" {
if !server.CheckStatus() {
server.Status = "異常"
configs.ORMDB().Save(&server)
}
}
}
}