2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:47:20 +08:00
Files
panel/internal/biz/task.go

33 lines
901 B
Go

package biz
import "time"
type TaskStatus string
const (
TaskStatusWaiting TaskStatus = "waiting"
TaskStatusRunning TaskStatus = "running"
TaskStatusSuccess TaskStatus = "finished"
TaskStatusFailed TaskStatus = "failed"
)
type Task struct {
ID uint `gorm:"primaryKey" json:"id"`
Name string `gorm:"not null;default:'';index" json:"name"`
Status TaskStatus `gorm:"not null;default:'waiting'" json:"status"`
Shell string `gorm:"not null;default:''" json:"-"`
Log string `gorm:"not null;default:''" json:"log"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type TaskRepo interface {
HasRunningTask() bool
List(page, limit uint) ([]*Task, int64, error)
Get(id uint) (*Task, error)
Delete(id uint) error
UpdateStatus(id uint, status TaskStatus) error
Push(task *Task) error
ClearZombieTasks() error
}