client

package
v1.1.1139 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2024 License: MIT Imports: 45 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 ParseTaskSpec added in v1.1.1139

func ParseTaskSpec(taskSpec string) (*model.TaskSpec, error)

ParseTaskSpec parses a yaml task spec string into a task spec proto.

func ParseTaskSpecFromFile added in v1.1.1139

func ParseTaskSpecFromFile(path string) (*model.TaskSpec, error)

ParseTaskSpecFromFile reads a task specification from a file and parses it into a *model.TaskSpec. It returns the parsed task specification or an error if the file cannot be read or the task specification cannot be parsed.

func RegisterProcessComplete added in v1.1.1139

func RegisterProcessComplete[T any](ctx context.Context, c *Client, processName string, fn func(context.Context, T, *model.Error, model.CancellationState)) error

RegisterProcessComplete registers a process completion function for a specific process name. The function takes a context.Context, a generic input parameter T, *model.Error, and model.CancellationState as its arguments. It returns an error if the input parameter is not a struct or if there is an error registering the process completion function. The function stores the process completion task definition in the Client's proCompleteTasks map.

Example usage: err := client.RegisterProcessComplete(ctx, cl, "SimpleProcess", d.processEnd)

func RegisterTaskWithSpec added in v1.1.1139

func RegisterTaskWithSpec[T, U any](ctx context.Context, c *Client, spec *model.TaskSpec, fn func(context.Context, task.JobClient, T) (U, error)) error

RegisterTaskWithSpec registers a task with the provided task specification and function. It takes a context, a *Client, a *model.TaskSpec, and a function as parameters. The function fn takes a context, a task.JobClient, and a parameter of type T, and returns a result of type U and an error. The function should handle the task execution logic. Before registering the task function, it validates the function parameters against the task specification. It returns an error if there is any validation error or if the task function registration fails.

func RegisterTaskWithSpecFile added in v1.1.1139

func RegisterTaskWithSpecFile[T, U any](ctx context.Context, c *Client, specFile string, fn func(context.Context, task.JobClient, T) (U, error)) error

RegisterTaskWithSpecFile reads a task specification from a file, parses it into a *model.TaskSpec, and registers a task with the parsed specification and a function. It takes a context, a *Client, a specFile string, and a function as parameters. The function fn takes a context, a task.JobClient, and a parameter of type T, and returns a result of type U. The function returns an error if there is an error parsing the task specification from the file, registering the task, or any other error that occurs. This function is a wrapper around the ParseTaskSpecFromFile and RegisterTaskWithSpec functions. The specFile parameter is the path to the file containing the task specification. The fn parameter is the function to be executed for the registered task. The context parameter is used for passing cancellation signals and deadlines between function calls.

Types

type Client

type Client struct {
	SvcTasks map[string]*task2.FnDef

	MsgSender map[string]*task2.FnDef

	ExpectedCompatibleServerVersion *version.Version
	ExpectedServerVersion           *version.Version

	SendMiddleware    []middleware2.Send
	ReceiveMiddleware []middleware2.Receive
	// contains filtered or unexported fields
}

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

func New

func New(option ...ConfigurationOption) *Client

New creates a new SHAR client instance

func (*Client) CancelProcessInstance added in v1.0.645

func (c *Client) CancelProcessInstance(ctx context.Context, processInstanceId 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.ProcessHistoryEntry, 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.WorkflowState, 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 the version IDs associated with the named task spec.

func (*Client) GetTaskUIDFromSpec added in v1.1.1026

func (c *Client) GetTaskUIDFromSpec(spec *model.TaskSpec) (string, error)

GetTaskUIDFromSpec returns a UID (string) based on a deterministic algorithm from a TaskSpec.

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.WorkflowVersion, 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, processId string, mvars model.Vars) (executionId string, workflowId string, er error)

LaunchProcess launches a new process within a workflow/BPMN definition. It returns the execution Id of the launched process and the workflow id of the BPMN definition containing the process

func (*Client) ListExecutableProcesses added in v1.1.1032

func (c *Client) ListExecutableProcesses(ctx context.Context) ([]*model.ListExecutableProcessesItem, error)

ListExecutableProcesses gets a list of executable processes.

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. Returns the uuid uniquely identifying the workflow.

func (*Client) RegisterMessageSender

func (c *Client) RegisterMessageSender(ctx context.Context, workflowName string, messageName string, sender task2.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 task2.ProcessTerminateFn) error

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

func (*Client) RegisterTaskFunction added in v1.1.947

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

RegisterTaskFunction registers a service task function. If the service task spec has no UID then it will be calculated and written to the Metadata.Uid field.

func (*Client) ResolveWorkflow added in v1.1.927

func (c *Client) ResolveWorkflow(ctx context.Context, workflow *model.Workflow) (*model.Workflow, error)

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

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.

func (*Client) StoreTask added in v1.1.947

func (c *Client) StoreTask(ctx context.Context, spec *model.TaskSpec) error

StoreTask stores a task specification, and assigns the generated ID to the task metadata.

type ConfigurationOption added in v1.1.848

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

ConfigurationOption represents an interface for configuring a client.

func WithConcurrency added in v1.0.320

func WithConcurrency(n int) ConfigurationOption

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

func WithEphemeralStorage added in v0.1.175

func WithEphemeralStorage() ConfigurationOption

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

func WithNamespace added in v1.1.835

func WithNamespace(name string) ConfigurationOption

WithNamespace applies a client namespace.

func WithNoOSSig added in v1.1.731

func WithNoOSSig() ConfigurationOption

WithNoOSSig disables SIGINT and SIGKILL processing within the client.

func WithNoRecovery added in v1.1.677

func WithNoRecovery() ConfigurationOption

WithNoRecovery disables panic recovery for debugging.

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 OpenTelemetry added in v1.1.848

type OpenTelemetry struct {
}

OpenTelemetry represents a type for enabling OpenTelemetry for a client.

func WithOpenTelemetry added in v1.1.848

func WithOpenTelemetry() OpenTelemetry

WithOpenTelemetry enables the flow of Open Telemetry Trace and Span IDs.

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 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