整理代碼

This commit is contained in:
2023-05-29 08:51:09 +08:00
parent c3f524d458
commit 45dc15ae8f
5 changed files with 27 additions and 24 deletions

View File

@@ -42,6 +42,8 @@ func (model *Model) Train() (err error) {
var server Server
if err = configs.ORMDB().Where("status = ?", "閒置").First(&server).Error; err != nil {
fmt.Println(err)
// TOOD: 沒有空閒的訓練機, 訓練排隊, 等待訓練機空閒
// TODO: 如果訓練機數量低於10臺, 則創建新的訓練機
return
}

View File

@@ -3,6 +3,7 @@ package models
import (
"encoding/json"
"fmt"
"log"
"main/configs"
"net/http"
"time"
@@ -22,28 +23,38 @@ type Server struct {
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
}
func (server *Server) CheckStatus() bool {
func (server *Server) CheckStatus() (err error) {
// 不用類型的模型有不同的狀態檢查方式
if server.Type == "train" {
}
resp, err := http.Get(fmt.Sprintf("http://%s:%d/status", server.IP, server.Port))
if err != nil {
return false
log.Println("服務器狀態異常", err)
server.Status = "異常"
return
}
defer resp.Body.Close()
// 解碼json
var data map[string]interface{}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
return false
if err = json.NewDecoder(resp.Body).Decode(&data); err != nil {
return
}
fmt.Println("data:", data)
log.Println("data:", data)
// 檢查服務器是否正常
if data["status"] != "ok" {
return false
log.Println("服務器狀態異常", err)
server.Status = "異常"
return
}
configs.ORMDB().Save(&server)
// 檢查服務器是否正常
return true
return
}
func init() {
@@ -62,11 +73,6 @@ func init() {
var servers []Server
configs.ORMDB().Find(&servers)
for _, server := range servers {
if server.Status != "異常" {
if !server.CheckStatus() {
server.Status = "異常"
configs.ORMDB().Save(&server)
}
}
server.CheckStatus()
}
}

View File

@@ -24,15 +24,9 @@ func ServersGet(w http.ResponseWriter, r *http.Request) {
// 獲取服務器列表
db.Offset((listview.Page - 1) * listview.PageSize).Limit(listview.PageSize).Find(&server_list)
for _, server := range server_list {
// 驗證服務器狀態
resp, err := http.Get(fmt.Sprintf("http://%s:%d/docs", server.IP, server.Port))
if err != nil || resp.StatusCode != http.StatusOK {
server.Status = "異常"
} else {
server.Status = "正常"
}
// 讀取模型信息
resp, err = http.Get(fmt.Sprintf("http://%s:%d/sdapi/v1/sd-models", server.IP, server.Port))
server.CheckStatus() // 驗證服務器狀態
//// 讀取模型信息
resp, err := http.Get(fmt.Sprintf("http://%s:%d/sdapi/v1/sd-models", server.IP, server.Port))
if err != nil || resp.StatusCode != http.StatusOK {
server.Models = []map[string]interface{}{}
} else {

View File

@@ -5,7 +5,8 @@ start_time=$(date +%s)
rm -f data/sqlite3.db
# 流程測試, 啓動服務, 設定進程名 go_test, 並將日誌隱藏
go run main.go -procname go_test > /dev/null 2>&1 &
#go run main.go -procname go_test > /dev/null 2>&1 &
go run main.go -procname go_test &
sleep 2

View File

@@ -8,7 +8,7 @@ go build -o data/gameui-ai-server main.go
scp ./data/gameui-ai-server root@47.103.40.152:~/gameui-ai-server_new
rm -rf ./data/gameui-ai-server
# 重啓服務
# 重啓服務(RAM)
ssh root@47.103.40.152 '''
ps -ef | grep -v grep | grep ./gameui-ai-server;
if [ $? -eq 0 ]; then