Documentation ¶
Index ¶
Constants ¶
View Source
const ( // Task error codes ErrTaskNotFound = stacktrace.ErrorCode(iota) ErrInvalidTask // Executor error codes ErrExecutorFailed // Validation error codes ErrInvalidInput )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Executor ¶
type Executor interface { // New creates a new instance of the Executor. New() Executor // ID returns the unique identifier of the Executor. ID() string // Name returns the name of the Executor. Name() string // Description returns the description of the Executor. Description() string // InputRules returns the input rules for the Executor. InputRules() map[string]interface{} // OutputRules returns the output rules for the Executor. OutputRules() map[string]interface{} // Validate validates the task and its dependencies. Validate(ctx context.Context, task *Task, tasks []*Task) error // Execute executes the task and its dependencies. Execute(ctx context.Context, task *Task, tasks []*Task) (interface{}, error) }
Executor represents an interface for executing tasks.
type Task ¶
type Task struct { ID string `json:"id" yaml:"id" validate:"required"` Name string `json:"name" yaml:"name"` Description string `json:"description" yaml:"description"` Executor string `json:"executor" yaml:"executor" validate:"required"` DependsOn []string `json:"dependsOn" yaml:"dependsOn"` GlobalInput interface{} `json:"globalInput,omitempty" yaml:"globalInput,omitempty"` Input interface{} `json:"input,omitempty" yaml:"input,omitempty" validate:"required"` Output interface{} `json:"output,omitempty" yaml:"output,omitempty"` Condition interface{} `json:"condition,omitempty" yaml:"condition,omitempty"` Duration int64 `json:"duration,omitempty" yaml:"duration,omitempty"` LatestDuration int64 `json:"latestDuration,omitempty" yaml:"latestDuration,omitempty"` IsExecuting bool `yaml:"isExecuting" json:"isExecuting"` Succeeded bool `yaml:"succeeded" json:"succeeded"` NextTaskId string `json:"nextTaskId,omitempty" yaml:"nextTaskId,omitempty"` Error error `json:"error,omitempty" yaml:"error,omitempty"` Dependencies map[string]*Task `json:"-" yaml:"-"` }
Click to show internal directories.
Click to hide internal directories.