33 lines
1.7 KiB
Go
33 lines
1.7 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
const (
|
|
JobExecutionRunning = "running"
|
|
JobExecutionSucceeded = "succeeded"
|
|
JobExecutionFailed = "failed"
|
|
JobExecutionInterrupted = "interrupted"
|
|
JobTriggerScheduled = "scheduled"
|
|
)
|
|
|
|
// SysJobExecutionLog stores one scheduler invocation. Job arguments and raw
|
|
// provider responses are deliberately excluded from this audit record.
|
|
type SysJobExecutionLog struct {
|
|
ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
|
|
ExecutionID string `json:"executionId" gorm:"size:36;not null;uniqueIndex:ux_sys_job_execution_id"`
|
|
JobID int `json:"jobId" gorm:"not null;index:idx_sys_job_execution_job_started,priority:1"`
|
|
JobNameSnapshot string `json:"jobName" gorm:"size:255;not null"`
|
|
InvokeTargetSnapshot string `json:"invokeTarget" gorm:"size:255;not null"`
|
|
TriggerType string `json:"triggerType" gorm:"size:16;not null"`
|
|
Status string `json:"status" gorm:"size:16;not null;index:idx_sys_job_execution_status_started,priority:1"`
|
|
StartedAt time.Time `json:"startedAt" gorm:"not null;index:idx_sys_job_execution_job_started,priority:2;index:idx_sys_job_execution_status_started,priority:2"`
|
|
FinishedAt *time.Time `json:"finishedAt,omitempty"`
|
|
DurationMS int64 `json:"durationMs" gorm:"not null;default:0"`
|
|
ErrorCode string `json:"errorCode,omitempty" gorm:"size:64;not null;default:''"`
|
|
ErrorMessage string `json:"errorMessage,omitempty" gorm:"size:500;not null;default:''"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
func (SysJobExecutionLog) TableName() string { return "sys_job_execution_log" }
|