Documentation ¶
Index ¶
- func At(t ...time.Time) scheduled
- func Cron(c string) cron
- func Crons(c ...string) cronArr
- func Event(e string) event
- func Events(events ...string) eventsArr
- func NoTrigger() noTrigger
- type Action
- type GetWorkflowConcurrencyGroupFn
- type HatchetContext
- type JobRunLookupData
- type MiddlewareFunc
- type RegisterActionOpt
- type Service
- type Step
- type StepData
- type StepRunData
- type TriggeredBy
- type Worker
- func (w *Worker) Call(action string) *WorkflowStep
- func (w *Worker) NewService(name string) *Service
- func (w *Worker) On(t triggerConverter, workflow workflowConverter) error
- func (w *Worker) RegisterAction(actionId string, method any) error
- func (w *Worker) Start(ctx context.Context) error
- func (w *Worker) Use(mws ...MiddlewareFunc)
- type WorkerOpt
- type WorkerOpts
- type Workflow
- type WorkflowConcurrency
- type WorkflowJob
- type WorkflowStep
- func (w *WorkflowStep) AddParents(parents ...string) *WorkflowStep
- func (w *WorkflowStep) GetActionId(svcName string, index int) string
- func (w *WorkflowStep) GetStepId(index int) string
- func (w *WorkflowStep) SetName(name string) *WorkflowStep
- func (w *WorkflowStep) SetRetries(retries int) *WorkflowStep
- func (w *WorkflowStep) SetTimeout(timeout string) *WorkflowStep
- func (w *WorkflowStep) ToActionMap(svcName string) map[string]any
- func (w *WorkflowStep) ToWorkflow(svcName string) types.Workflow
- func (w *WorkflowStep) ToWorkflowStep(svcName string, index int) (*Step, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Action ¶
type Action interface { // Name returns the name of the action Name() string // Run runs the action Run(args ...any) []any MethodFn() any ConcurrencyFn() GetWorkflowConcurrencyGroupFn // Service returns the service that the action belongs to Service() string }
Action is an individual action that can be run by the worker.
type GetWorkflowConcurrencyGroupFn ¶ added in v0.8.0
type GetWorkflowConcurrencyGroupFn func(ctx HatchetContext) (string, error)
type HatchetContext ¶
type JobRunLookupData ¶
type JobRunLookupData struct { Input map[string]interface{} `json:"input"` TriggeredBy TriggeredBy `json:"triggered_by"` Steps map[string]StepData `json:"steps,omitempty"` }
type MiddlewareFunc ¶
type MiddlewareFunc func(ctx HatchetContext, next func(HatchetContext) error) error
type RegisterActionOpt ¶
type RegisterActionOpt func(*registerActionOpts)
func WithActionName ¶
func WithActionName(name string) RegisterActionOpt
type Service ¶
type Service struct { Name string // contains filtered or unexported fields }
func (*Service) Call ¶
func (s *Service) Call(verb string) *WorkflowStep
func (*Service) RegisterAction ¶
func (s *Service) RegisterAction(fn any, opts ...RegisterActionOpt) error
func (*Service) Use ¶
func (s *Service) Use(mws ...MiddlewareFunc)
type StepRunData ¶
type StepRunData struct { Input map[string]interface{} `json:"input"` TriggeredBy TriggeredBy `json:"triggered_by"` Parents map[string]StepData `json:"parents"` }
type TriggeredBy ¶
type TriggeredBy string
TODO: move this into proto definitions
const ( TriggeredByEvent TriggeredBy = "event" TriggeredByCron TriggeredBy = "cron" TriggeredBySchedule TriggeredBy = "schedule" )
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
func (*Worker) Call ¶
func (w *Worker) Call(action string) *WorkflowStep
func (*Worker) NewService ¶
func (*Worker) RegisterAction ¶
RegisterAction can be used to register a single action which can be reused across multiple workflows.
An action should be of the format <service>:<verb>, for example slack:create-channel.
The method must match the following signatures: - func(ctx context.Context) error - func(ctx context.Context, input *Input) error - func(ctx context.Context, input *Input) (*Output, error) - func(ctx context.Context) (*Output, error)
func (*Worker) Use ¶
func (w *Worker) Use(mws ...MiddlewareFunc)
type WorkerOpt ¶
type WorkerOpt func(*WorkerOpts)
func WithClient ¶
func WithErrorAlerter ¶
func WithIntegration ¶
func WithIntegration(integration integrations.Integration) WorkerOpt
func WithMaxRuns ¶ added in v0.12.0
type WorkerOpts ¶
type WorkerOpts struct {
// contains filtered or unexported fields
}
type Workflow ¶
type Workflow struct {
Jobs []WorkflowJob
}
type WorkflowConcurrency ¶ added in v0.8.0
type WorkflowConcurrency struct {
// contains filtered or unexported fields
}
func Concurrency ¶ added in v0.8.0
func Concurrency(fn GetWorkflowConcurrencyGroupFn) *WorkflowConcurrency
func (*WorkflowConcurrency) LimitStrategy ¶ added in v0.8.0
func (c *WorkflowConcurrency) LimitStrategy(limitStrategy types.WorkflowConcurrencyLimitStrategy) *WorkflowConcurrency
func (*WorkflowConcurrency) MaxRuns ¶ added in v0.8.0
func (c *WorkflowConcurrency) MaxRuns(maxRuns int32) *WorkflowConcurrency
type WorkflowJob ¶
type WorkflowJob struct { // The name of the job Name string Description string Timeout string Concurrency *WorkflowConcurrency // The steps that are run in the job Steps []*WorkflowStep }
func (*WorkflowJob) ToActionMap ¶
func (j *WorkflowJob) ToActionMap(svcName string) map[string]any
func (*WorkflowJob) ToWorkflow ¶
func (j *WorkflowJob) ToWorkflow(svcName string) types.Workflow
func (*WorkflowJob) ToWorkflowJob ¶
func (j *WorkflowJob) ToWorkflowJob(svcName string) (*types.WorkflowJob, error)
type WorkflowStep ¶
type WorkflowStep struct { // The step timeout Timeout string // The executed function Function any // The step id/name. If not set, one will be generated from the function name Name string // The ids of the parents Parents []string Retries int }
func Fn ¶
func Fn(f any) *WorkflowStep
func (*WorkflowStep) AddParents ¶
func (w *WorkflowStep) AddParents(parents ...string) *WorkflowStep
func (*WorkflowStep) GetActionId ¶
func (w *WorkflowStep) GetActionId(svcName string, index int) string
func (*WorkflowStep) GetStepId ¶
func (w *WorkflowStep) GetStepId(index int) string
func (*WorkflowStep) SetName ¶
func (w *WorkflowStep) SetName(name string) *WorkflowStep
func (*WorkflowStep) SetRetries ¶ added in v0.11.0
func (w *WorkflowStep) SetRetries(retries int) *WorkflowStep
func (*WorkflowStep) SetTimeout ¶
func (w *WorkflowStep) SetTimeout(timeout string) *WorkflowStep
func (*WorkflowStep) ToActionMap ¶
func (w *WorkflowStep) ToActionMap(svcName string) map[string]any
func (*WorkflowStep) ToWorkflow ¶
func (w *WorkflowStep) ToWorkflow(svcName string) types.Workflow
func (*WorkflowStep) ToWorkflowStep ¶
func (w *WorkflowStep) ToWorkflowStep(svcName string, index int) (*Step, error)
Click to show internal directories.
Click to hide internal directories.