in job_instance.go [54:72]
func newJobInstance[T any](jd *JobDefinition[T], input T, jobInstanceOptions ...JobOptionPreparer) *JobInstance[T] {
ji := &JobInstance[T]{
Definition: jd,
input: input,
steps: map[string]StepInstanceMeta{},
stepsDag: graph.NewGraph(connectStepInstance),
jobOptions: &JobExecutionOptions{},
}
for _, decorator := range jobInstanceOptions {
ji.jobOptions = decorator(ji.jobOptions)
}
if ji.jobOptions.Id == "" {
ji.jobOptions.Id = uuid.New().String()
}
return ji
}