Select Git revision
job-log.go 1.37 KiB
// Copyright 2023 schukai GmbH
// SPDX-License-Identifier: AGPL-3.0
package jobqueue
import (
"gorm.io/gorm"
"time"
)
type JobLog struct {
LogID uint `gorm:"primarykey;autoIncrement:true" json:"logId"`
JobID JobID `json:"jobId" gorm:"type:varchar(255);foreignKey:JobID;references:ID"`
ProcessID int `json:"processId"`
StartTime time.Time `json:"startTime"`
EndTime time.Time `json:"endTime"`
ExitCode int `json:"exitCode"`
Result string `json:"output" gorm:"type:TEXT"` // Assuming serialized JSON for any type
ResourceUsage ResourceUsage `json:"resourceUsage" gorm:"embedded;embeddedPrefix:resource_usage_"`
IO IO `json:"io" gorm:"embedded;embeddedPrefix:io_"`
ErrorMsg string `json:"errorMsg"`
IsSuccessful bool `json:"isSuccessful"`
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt" yaml:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt" yaml:"updatedAt"`
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index" json:"-" yaml:"-"`
}
type ResourceUsage struct {
Memory uint64 `json:"memory"`
CPU float64 `json:"cpu"`
}
type IO struct {
Disk int64 `json:"disk"`
Network int64 `json:"network"`
}
func (JobLog) TableName() string {
return globalTableNamePrefix + "job_logs"
}