backend

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2023 License: MIT Imports: 13 Imported by: 30

Documentation

Index

Constants

View Source
const TracerName = "go-workflow"

Variables

View Source
var ErrInstanceAlreadyExists = errors.New("workflow instance already exists")
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, instance *workflow.Instance, event history.Event) error

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

	// GetWorkflowInstanceState returns the state of the given workflow instance
	GetWorkflowInstanceState(ctx context.Context, instance *workflow.Instance) (core.WorkflowInstanceState, 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, task *task.Workflow, instance *workflow.Instance, state core.WorkflowInstanceState,
		executedEvents, activityEvents, timerEvents []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

	// Tracer returns the configured trace provider for the backend
	Tracer() trace.Tracer

	// Metrics returns the configured metrics client for the backend
	Metrics() metrics.Client
}

type BackendOption

type BackendOption func(*Options)

func WithLogger added in v0.0.9

func WithLogger(logger log.Logger) BackendOption

func WithMetrics added in v0.6.0

func WithMetrics(client metrics.Client) BackendOption

func WithStickyTimeout

func WithStickyTimeout(timeout time.Duration) BackendOption

func WithTracerProvider added in v0.4.0

func WithTracerProvider(tp trace.TracerProvider) BackendOption

type MockBackend

type MockBackend struct {
	mock.Mock
}

MockBackend is an autogenerated mock type for the Backend type

func NewMockBackend added in v0.4.0

func NewMockBackend(t NewMockBackendT) *MockBackend

NewMockBackend creates a new instance of MockBackend. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.

func (*MockBackend) CancelWorkflowInstance

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

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

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, _a1 *task.Workflow, instance *core.WorkflowInstance, state core.WorkflowInstanceState, executedEvents []history.Event, activityEvents []history.Event, timerEvents []history.Event, workflowEvents []history.WorkflowEvent) error

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

func (*MockBackend) CreateWorkflowInstance

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

CreateWorkflowInstance provides a mock function with given fields: ctx, instance, 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, lastSequenceID

func (*MockBackend) GetWorkflowInstanceState added in v0.0.4

func (_m *MockBackend) GetWorkflowInstanceState(ctx context.Context, instance *core.WorkflowInstance) (core.WorkflowInstanceState, 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) Metrics added in v0.6.0

func (_m *MockBackend) Metrics() metrics.Client

Metrics 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

func (*MockBackend) Tracer added in v0.4.0

func (_m *MockBackend) Tracer() trace.Tracer

Tracer provides a mock function with given fields:

type NewMockBackendT added in v0.4.0

type NewMockBackendT interface {
	mock.TestingT
	Cleanup(func())
}

type Options

type Options struct {
	Logger log.Logger

	Metrics metrics.Client

	TracerProvider trace.TracerProvider

	StickyTimeout time.Duration

	WorkflowLockTimeout time.Duration

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

	Logger:         logger.NewDefaultLogger(),
	Metrics:        mi.NewNoopMetricsClient(),
	TracerProvider: trace.NewNoopTracerProvider(),
}

func ApplyOptions

func ApplyOptions(opts ...BackendOption) Options

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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