client

package
v1.1.732 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2023 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const HeartBeatInterval = 1 * time.Second

HeartBeatInterval defines the time between client heartbeats.

Variables

This section is empty.

Functions

func WithConcurrency added in v1.0.320

func WithConcurrency(n int) concurrency

WithConcurrency specifies the number of threads to process each service task.

func WithEphemeralStorage added in v0.1.175

func WithEphemeralStorage() ephemeralStorage

WithEphemeralStorage specifies a client store the result of all operations in memory.

func WithNoOSSig added in v1.1.731

func WithNoOSSig() noOSSig

WithNoOSSig disables SIGINT and SIGKILL processing within the client.

func WithNoRecovery added in v1.1.677

func WithNoRecovery() noRecovery

WithNoRecovery disables panic recovery for debugging.

Types

type Client

type Client struct {
	SvcTasks map[string]ServiceFn

	MsgSender map[string]SenderFn

	ExpectedCompatibleServerVersion *version.Version
	ExpectedServerVersion           *version.Version
	// contains filtered or unexported fields
}

Client implements a SHAR client capable of listening for service task activations, listening for Workflow Messages, and interating with the API

func New

func New(option ...Option) *Client

New creates a new SHAR client instance

func (*Client) CancelProcessInstance added in v1.0.645

func (c *Client) CancelProcessInstance(ctx context.Context, executionID string) error

CancelProcessInstance cancels a running Process Instance.

func (*Client) CompleteUserTask

func (c *Client) CompleteUserTask(ctx context.Context, owner string, trackingID string, newVars model.Vars) error

CompleteUserTask completes a task and sends the variables back to the workflow

func (*Client) DeprecateTaskSpec added in v1.1.670

func (c *Client) DeprecateTaskSpec(ctx context.Context, name string) error

DeprecateTaskSpec deprecates a task spec by name.

func (*Client) Dial

func (c *Client) Dial(ctx context.Context, natsURL string, opts ...nats.Option) error

Dial instructs the client to connect to a NATS server.

func (*Client) GetJob added in v1.0.279

func (c *Client) GetJob(ctx context.Context, id string) (*model.WorkflowState, error)

GetJob returns a Job given a tracking ID

func (*Client) GetProcessHistory added in v1.0.477

func (c *Client) GetProcessHistory(ctx context.Context, processInstanceId string) (*model.GetProcessHistoryResponse, error)

GetProcessHistory gets the history for a process.

func (*Client) GetProcessInstanceStatus added in v1.0.427

func (c *Client) GetProcessInstanceStatus(ctx context.Context, id string) (*model.GetProcessInstanceStatusResult, error)

GetProcessInstanceStatus lists the current workflow states for a process instance.

func (*Client) GetServerVersion added in v1.0.514

func (c *Client) GetServerVersion(ctx context.Context) (*version.Version, error)

GetServerVersion returns the current server version

func (*Client) GetTaskSpecByUID added in v1.0.623

func (c *Client) GetTaskSpecByUID(ctx context.Context, uid string) (*model.TaskSpec, error)

GetTaskSpecByUID gets a versioned task spec by its UID

func (*Client) GetTaskSpecUsage added in v1.1.670

func (c *Client) GetTaskSpecUsage(ctx context.Context, id string) (*model.TaskSpecUsageReport, error)

GetTaskSpecUsage returns a report outlining task spec usage in executable and executing workflows.

func (*Client) GetTaskSpecVersions added in v1.1.670

func (c *Client) GetTaskSpecVersions(ctx context.Context, name string) ([]string, error)

GetTaskSpecVersions returns all of the version IDs associated with the named task spec.

func (*Client) GetUserTask added in v0.1.88

func (c *Client) GetUserTask(ctx context.Context, owner string, trackingID string) (*model.GetUserTaskResponse, model.Vars, error)

GetUserTask fetches details for a user task based upon an ID obtained from, ListUserTasks

func (*Client) GetWorkflow added in v1.0.366

func (c *Client) GetWorkflow(ctx context.Context, id string) (*model.Workflow, error)

GetWorkflow - retrieves a workflow model given its ID

func (*Client) GetWorkflowVersions added in v1.0.366

func (c *Client) GetWorkflowVersions(ctx context.Context, name string) (*model.WorkflowVersions, error)

GetWorkflowVersions - returns a list of versions for a given workflow.

func (*Client) HasWorkflowDefinitionChanged added in v1.0.366

func (c *Client) HasWorkflowDefinitionChanged(ctx context.Context, name string, b []byte) (bool, error)

HasWorkflowDefinitionChanged - given a workflow name and a BPMN xml, return true if the resulting definition is different.

func (*Client) LaunchProcess added in v1.0.645

func (c *Client) LaunchProcess(ctx context.Context, processName string, mvars model.Vars) (string, string, error)

LaunchProcess launches a new workflow instance.

func (*Client) ListExecution added in v1.0.645

func (c *Client) ListExecution(ctx context.Context, name string) ([]*model.ListExecutionItem, error)

ListExecution gets a list of running executions by workflow name.

func (*Client) ListExecutionProcesses added in v1.0.645

func (c *Client) ListExecutionProcesses(ctx context.Context, id string) (*model.ListExecutionProcessesResponse, error)

ListExecutionProcesses lists the current process IDs for an Execution.

func (*Client) ListTaskSpecs added in v1.1.725

func (c *Client) ListTaskSpecs(ctx context.Context, includeDeprecated bool) ([]*model.TaskSpec, error)

ListTaskSpecs lists active and optionally deprecated task specs.

func (*Client) ListUserTaskIDs added in v0.1.86

func (c *Client) ListUserTaskIDs(ctx context.Context, owner string) (*model.UserTasks, error)

ListUserTaskIDs returns a list of user tasks for a particular owner

func (*Client) ListWorkflows

func (c *Client) ListWorkflows(ctx context.Context) ([]*model.ListWorkflowResponse, error)

ListWorkflows gets a list of launchable workflow in SHAR.

func (*Client) Listen

func (c *Client) Listen(ctx context.Context) error

Listen starts processing the client message queues.

func (*Client) LoadBPMNWorkflowFromBytes

func (c *Client) LoadBPMNWorkflowFromBytes(ctx context.Context, name string, b []byte) (string, error)

LoadBPMNWorkflowFromBytes loads, parses, and stores a BPMN workflow in SHAR.

func (*Client) RegisterMessageSender

func (c *Client) RegisterMessageSender(ctx context.Context, workflowName string, messageName string, sender SenderFn) error

RegisterMessageSender registers a function that requires support for sending Workflow Messages

func (*Client) RegisterProcessComplete added in v1.0.477

func (c *Client) RegisterProcessComplete(processId string, fn ProcessTerminateFn) error

RegisterProcessComplete registers a function to be executed when a shar workflow process terminates.

func (*Client) RegisterTask added in v1.0.623

func (c *Client) RegisterTask(ctx context.Context, spec *model.TaskSpec, fn ServiceFn) error

RegisterTask registers a task spec with SHAR.

func (*Client) SendMessage

func (c *Client) SendMessage(ctx context.Context, name string, key any, mvars model.Vars) error

SendMessage sends a Workflow Message to a specific workflow instance

func (*Client) Shutdown added in v1.1.731

func (c *Client) Shutdown()

Shutdown stops message processing and waits for processing messages gracefully.

type ErrTaskInUse added in v1.1.670

type ErrTaskInUse struct {
	Err   error
	Usage *model.TaskSpecUsageReport
}

ErrTaskInUse is returned when an operation failed because it was attempted on a task in use.

func (ErrTaskInUse) Error added in v1.1.670

func (e ErrTaskInUse) Error() string

Error returns the string version of the ErrWorkflowFatal error

type FixedIDOption added in v1.0.514

type FixedIDOption struct {
	// contains filtered or unexported fields
}

FixedIDOption contains a fixed ID which will be used to register a task

func WithFixedID added in v1.0.514

func WithFixedID(id string) FixedIDOption

WithFixedID is a modifier which returns a FixedIDOption containing the specified ID.

type JobClient added in v1.0.271

type JobClient interface {
	LogClient
}

JobClient represents a client that is sent to all service tasks to facilitate logging.

type LogClient added in v1.0.273

type LogClient interface {
	// Log logs to the underlying SHAR infrastructure.
	Log(ctx context.Context, severity messages.WorkflowLogLevel, code int32, message string, attrs map[string]string) error
}

LogClient represents a client which is capable of logging to the SHAR infrastructure.

type MessageClient added in v1.0.271

type MessageClient interface {
	LogClient
	// SendMessage sends a Workflow Message
	SendMessage(ctx context.Context, name string, key any, vars model.Vars) error
}

MessageClient represents a client which supports logging and sending Workflow Messages to the underlying SHAR instrastructure.

type Option added in v0.1.86

type Option interface {
	// contains filtered or unexported methods
}

Option represents a configuration changer for the client.

type ProcessTerminateFn added in v1.0.477

type ProcessTerminateFn func(ctx context.Context, vars model.Vars, wfError *model.Error, endState model.CancellationState)

ProcessTerminateFn provides the signature for process terminate functions.

type RegOpt added in v1.0.514

type RegOpt interface {
	// contains filtered or unexported methods
}

RegOpt represents an option that can be passed to the task register function.

type SenderFn added in v1.0.267

type SenderFn func(ctx context.Context, client MessageClient, vars model.Vars) error

SenderFn provides the signature for functions that can act as Workflow Message senders.

type ServiceFn added in v1.0.267

type ServiceFn func(ctx context.Context, client JobClient, vars model.Vars) (model.Vars, error)

ServiceFn provides the signature for service task functions.

type TaskSpecOption added in v1.0.514

type TaskSpecOption struct {
	// contains filtered or unexported fields
}

TaskSpecOption contains the task specification.

func WithSpec added in v1.0.514

func WithSpec(spec *model.TaskSpec) TaskSpecOption

WithSpec allows the client to define a task specification to SHAR.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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