backend

package
v0.0.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2022 License: MIT Imports: 10 Imported by: 30

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInstanceNotFound = errors.New("workflow instance not found")

Functions

This section is empty.

Types

type Backend

type Backend interface {
	// CreateWorkflowInstance creates a new workflow instance
	CreateWorkflowInstance(ctx context.Context, event history.WorkflowEvent) error

	// CancelWorkflowInstance cancels a running workflow instance
	CancelWorkflowInstance(ctx context.Context, instance *workflow.Instance, event *history.Event) error

	// GetWorkflowInstanceState returns the state of the given workflow instance
	GetWorkflowInstanceState(ctx context.Context, instance *workflow.Instance) (WorkflowState, error)

	// GetWorkflowInstanceHistory returns the workflow history for the given instance. When lastSequenceID
	// is given, only events after that event are returned. Otherwise the full history is returned.
	GetWorkflowInstanceHistory(ctx context.Context, instance *workflow.Instance, lastSequenceID *int64) ([]history.Event, error)

	// SignalWorkflow signals a running workflow instance
	SignalWorkflow(ctx context.Context, instanceID string, event history.Event) error

	// GetWorkflowInstance returns a pending workflow task or nil if there are no pending worflow executions
	GetWorkflowTask(ctx context.Context) (*task.Workflow, error)

	// ExtendWorkflowTask extends the lock of a workflow task
	ExtendWorkflowTask(ctx context.Context, taskID string, instance *core.WorkflowInstance) error

	// CompleteWorkflowTask checkpoints a workflow task retrieved using GetWorkflowTask
	//
	// This checkpoints the execution. events are new events from the last workflow execution
	// which will be added to the workflow instance history. workflowEvents are new events for the
	// completed or other workflow instances.
	CompleteWorkflowTask(
		ctx context.Context, taskID string, instance *workflow.Instance, state WorkflowState,
		executedEvents []history.Event, activityEvents []history.Event, workflowEvents []history.WorkflowEvent) error

	// GetActivityTask returns a pending activity task or nil if there are no pending activities
	GetActivityTask(ctx context.Context) (*task.Activity, error)

	// CompleteActivityTask completes an activity task retrieved using GetActivityTask
	CompleteActivityTask(ctx context.Context, instance *workflow.Instance, activityID string, event history.Event) error

	// ExtendActivityTask extends the lock of an activity task
	ExtendActivityTask(ctx context.Context, activityID string) error

	// Logger returns the configured logger for the backend
	Logger() log.Logger
}

type BackendOption

type BackendOption func(*Options)

func WithLogger added in v0.0.9

func WithLogger(logger log.Logger) BackendOption

func WithStickyTimeout

func WithStickyTimeout(timeout time.Duration) BackendOption

type MockBackend

type MockBackend struct {
	mock.Mock
}

MockBackend is an autogenerated mock type for the Backend type

func (*MockBackend) CancelWorkflowInstance

func (_m *MockBackend) CancelWorkflowInstance(ctx context.Context, instance *core.WorkflowInstance, event *history.Event) error

CancelWorkflowInstance provides a mock function with given fields: ctx, instance, event

func (*MockBackend) CompleteActivityTask

func (_m *MockBackend) CompleteActivityTask(ctx context.Context, instance *core.WorkflowInstance, activityID string, event history.Event) error

CompleteActivityTask provides a mock function with given fields: ctx, instance, activityID, event

func (*MockBackend) CompleteWorkflowTask

func (_m *MockBackend) CompleteWorkflowTask(ctx context.Context, taskID string, instance *core.WorkflowInstance, state WorkflowState, executedEvents []history.Event, activityEvents []history.Event, workflowEvents []history.WorkflowEvent) error

CompleteWorkflowTask provides a mock function with given fields: ctx, taskID, instance, state, executedEvents, activityEvents, workflowEvents

func (*MockBackend) CreateWorkflowInstance

func (_m *MockBackend) CreateWorkflowInstance(ctx context.Context, event history.WorkflowEvent) error

CreateWorkflowInstance provides a mock function with given fields: ctx, event

func (*MockBackend) ExtendActivityTask

func (_m *MockBackend) ExtendActivityTask(ctx context.Context, activityID string) error

ExtendActivityTask provides a mock function with given fields: ctx, activityID

func (*MockBackend) ExtendWorkflowTask

func (_m *MockBackend) ExtendWorkflowTask(ctx context.Context, taskID string, instance *core.WorkflowInstance) error

ExtendWorkflowTask provides a mock function with given fields: ctx, taskID, instance

func (*MockBackend) GetActivityTask

func (_m *MockBackend) GetActivityTask(ctx context.Context) (*task.Activity, error)

GetActivityTask provides a mock function with given fields: ctx

func (*MockBackend) GetWorkflowInstanceHistory added in v0.0.4

func (_m *MockBackend) GetWorkflowInstanceHistory(ctx context.Context, instance *core.WorkflowInstance, lastSequenceID *int64) ([]history.Event, error)

GetWorkflowInstanceHistory provides a mock function with given fields: ctx, instance

func (*MockBackend) GetWorkflowInstanceState added in v0.0.4

func (_m *MockBackend) GetWorkflowInstanceState(ctx context.Context, instance *core.WorkflowInstance) (WorkflowState, error)

GetWorkflowInstanceState provides a mock function with given fields: ctx, instance

func (*MockBackend) GetWorkflowTask

func (_m *MockBackend) GetWorkflowTask(ctx context.Context) (*task.Workflow, error)

GetWorkflowTask provides a mock function with given fields: ctx

func (*MockBackend) Logger added in v0.0.9

func (_m *MockBackend) Logger() log.Logger

Logger provides a mock function with given fields:

func (*MockBackend) SignalWorkflow

func (_m *MockBackend) SignalWorkflow(ctx context.Context, instanceID string, event history.Event) error

SignalWorkflow provides a mock function with given fields: ctx, instanceID, event

type Options

type Options struct {
	Logger log.Logger

	StickyTimeout time.Duration

	WorkflowLockTimeout time.Duration

	ActivityLockTimeout time.Duration
}
var DefaultOptions Options = Options{
	StickyTimeout:       30 * time.Second,
	WorkflowLockTimeout: time.Minute,
	ActivityLockTimeout: time.Minute * 2,
}

func ApplyOptions

func ApplyOptions(opts ...BackendOption) Options

type WorkflowState added in v0.0.4

type WorkflowState int
const (
	WorkflowStateActive WorkflowState = iota
	WorkflowStateFinished
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL