Files
ai/models/Task.go
2023-05-16 01:51:41 +08:00

58 lines
1.3 KiB
Go

package models
import "time"
type Task struct {
ID int `json:"id" gorm:"primary_key"`
Name string `json:"name"`
Type string `json:"type"` // 任務類型(訓練|推理)
Status string `json:"status"` // (initial|ready|waiting|running|success|error)
Progress int `json:"progress"` // (0-100)
UserID int `json:"user_id"`
CreatedAt time.Time `json:"created_at" gorm:"default:CURRENT_TIMESTAMP;autoCreateTime"`
UpdatedAt time.Time `json:"updated_at" gorm:"default:CURRENT_TIMESTAMP;autoUpdateTime"`
}
//// 推理任務
//func startInferenceTask(task *Task) {
//
// // 獲取一臺可用的 GPU 資源
// // ...
//
// // 執行推理任務
// // ...
//
// // 更新任務狀態
// task.Status = "running"
// task.Progress = 0
// task.Update()
//
// // 監聽任務狀態
// for {
// // 延遲 1 秒
// time.Sleep(1 * time.Second)
//
// // 查詢任務狀態
// resp, err := http.Get("http://localhost:5000/api/v1/tasks/" + strconv.Itoa(task.ID))
// if err != nil {
// log.Println(err)
// continue
// }
// defer resp.Body.Close()
//
// // 解析任務狀態
// // ...
//
// // 更新任務狀態
// task.Progress = 100
// task.Status = "success"
// task.Update()
//
// // 任務結束判定
// if task.Progress == 100 {
// break
// }
// }
//
//}