56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package task
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type TaskStatus string
|
|
|
|
const (
|
|
StatusPending TaskStatus = "PENDING"
|
|
StatusRunning TaskStatus = "RUNNING"
|
|
StatusCompleted TaskStatus = "COMPLETED"
|
|
StatusFailed TaskStatus = "FAILED"
|
|
)
|
|
|
|
// TaskType 定义异步任务的具体业务类型
|
|
type TaskType string
|
|
|
|
const (
|
|
TypeTopologyAnalysis TaskType = "TOPOLOGY_ANALYSIS"
|
|
TypeEventAnalysis TaskType = "EVENT_ANALYSIS"
|
|
TypeBatchImport TaskType = "BATCH_IMPORT"
|
|
)
|
|
|
|
type Task struct {
|
|
ID string `bson:"_id" json:"id"`
|
|
Type TaskType `bson:"type" json:"type"`
|
|
Status TaskStatus `bson:"status" json:"status"`
|
|
Priority int `bson:"priority" json:"priority"`
|
|
|
|
Params map[string]interface{} `bson:"params" json:"params"`
|
|
Result map[string]interface{} `bson:"result,omitempty" json:"result"`
|
|
ErrorMsg string `bson:"error_msg,omitempty" json:"error_msg"`
|
|
|
|
CreatedAt time.Time `bson:"created_at" json:"created_at"`
|
|
StartedAt time.Time `bson:"started_at,omitempty" json:"started_at"`
|
|
CompletedAt time.Time `bson:"completed_at,omitempty" json:"completed_at"`
|
|
}
|
|
|
|
type TopologyParams struct {
|
|
CheckIsland bool `json:"check_island"`
|
|
CheckShort bool `json:"check_short"`
|
|
BaseModelIDs []string `json:"base_model_ids"`
|
|
}
|
|
|
|
type EventAnalysisParams struct {
|
|
MotorID string `json:"motor_id"`
|
|
TriggerID string `json:"trigger_id"`
|
|
DurationMS int `json:"duration_ms"`
|
|
}
|
|
|
|
type BatchImportParams struct {
|
|
FileName string `json:"file_name"`
|
|
FilePath string `json:"file_path"`
|
|
}
|