// Package interfaces defines the contracts for worker components package interfaces import ( "context" "time" "github.com/jfraeys/fetch_ml/internal/queue" ) // ExecutionEnv holds the environment for job execution type ExecutionEnv struct { JobDir string OutputDir string LogFile string GPUDevices []string GPUEnvVar string GPUDevicesStr string } // JobExecutor defines the contract for executing jobs type JobExecutor interface { // Execute runs a job with the given context, task, and environment Execute(ctx context.Context, task *queue.Task, env ExecutionEnv) error } // ExecutionResult holds the result of job execution type ExecutionResult struct { Success bool ExitCode int Duration time.Duration Error error }