client

package
v0.19.985 Latest Latest
Warning

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

Go to latest
Published: May 31, 2026 License: AGPL-3.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSignalTimeout = errors.New("timeout waiting for signal completion")

Functions

func EnsureQueueSignal added in v0.19.978

func EnsureQueueSignal(ctx workflow.Context, ownerID, ownerType string, signalTypes ...signal.SignalType) error

EnsureQueueSignal is a workflow-level helper that checks whether the latest signal of any of the given types for an owner has completed. If it has, it returns immediately. If it is still in flight, it registers a callback and blocks until the signal completes (or times out).

This enables dependent signals to wait for prerequisites without polling, e.g. a component-build signal waiting for org-provision or org-reprovision (whichever is most recent) to finish.

Types

type Client

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

func New

func New(params Params) *Client

func (*Client) AwaitSignal

func (c *Client) AwaitSignal(ctx context.Context, queueSignalID string) (*handler.FinishedResponse, error)

AwaitSignal is deprecated — callers should use the callback-based await pattern instead. This method logs an error with the caller's queue signal ID and returns a non-retryable error so the offending call site is surfaced immediately.

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) CancelSignal added in v0.19.850

func (c *Client) CancelSignal(ctx context.Context, queueSignalID string) (*handler.CancelResponse, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) CheckCAN added in v0.19.934

func (c *Client) CheckCAN(ctx context.Context, queueID string) (*queue.CheckCANResponse, error)

CheckCAN triggers an on-demand CAN check on a queue workflow. @temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) ClearQueue added in v0.19.894

func (c *Client) ClearQueue(ctx context.Context, queueID string) (int, error)

ClearQueue cancels all in-flight (non-terminal) signals in the given queue. Every affected signal is set to StatusCancelled with a "cancelled by clear-queue" description.

func (*Client) CompleteSignal added in v0.19.850

func (c *Client) CompleteSignal(ctx context.Context, signalID, updateName string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) Create

func (c *Client) Create(ctx context.Context, req *CreateQueueRequest) (*app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) DirectExecuteSignal added in v0.19.901

func (c *Client) DirectExecuteSignal(ctx context.Context, queueSignalID string) (*queue.DirectExecuteResponse, error)

@temporal-gen-v2 activity @start-to-close-timeout 5m

func (*Client) EnqueueSignal

func (c *Client) EnqueueSignal(ctx context.Context, req *EnqueueSignalRequest) (*queue.EnqueueResponse, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) EnsureSignal added in v0.19.978

func (c *Client) EnsureSignal(ctx context.Context, req *EnsureSignalRequest) (*EnsureSignalResponse, error)

EnsureSignal checks the latest signal of the given type for the owner. If the signal is already complete (success), it returns immediately. If the signal is in flight (queued/in_progress), it atomically appends the callback and returns AlreadyComplete=false so the caller can Await.

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) FetchEagerStepGroups added in v0.19.903

func (c *Client) FetchEagerStepGroups(ctx context.Context, req FetchEagerStepGroupsRequest) (*app.GenerateStepsResult, error)

@temporal-gen-v2 activity @start-to-close-timeout 2m @heartbeat-timeout 60s

func (*Client) FetchSteps added in v0.19.894

func (c *Client) FetchSteps(ctx context.Context, req FetchStepsRequest) (*app.GenerateStepsResult, error)

@temporal-gen-v2 activity @start-to-close-timeout 2m @heartbeat-timeout 60s

func (*Client) ForceRestart added in v0.19.901

func (c *Client) ForceRestart(ctx context.Context, queueID string) error

ForceRestart terminates the running queue workflow and starts a fresh one. @temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) GetQueue

func (c *Client) GetQueue(ctx context.Context, id string) (*app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) GetQueueByOwner added in v0.19.850

func (c *Client) GetQueueByOwner(ctx context.Context, ownerID, ownerType string) (*app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) GetQueueByOwnerAndName added in v0.19.872

func (c *Client) GetQueueByOwnerAndName(ctx context.Context, ownerID, ownerType, name string) (*app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) GetQueueSignal added in v0.19.927

func (c *Client) GetQueueSignal(ctx context.Context, id string) (*app.QueueSignal, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) GetQueueStatus added in v0.19.850

func (c *Client) GetQueueStatus(ctx context.Context, queueID string) (*queue.StatusResponse, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) HintRestart added in v0.19.903

func (c *Client) HintRestart(ctx context.Context, queueIDs []string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) HintRestartByOrg added in v0.19.903

func (c *Client) HintRestartByOrg(ctx context.Context, orgID string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) HintRestartSingle added in v0.19.934

func (c *Client) HintRestartSingle(ctx context.Context, queueID string) error

HintRestartSingle sets restart_hint on a single queue via status_v2 metadata. The queue's CAN listener will pick this up on its next poll cycle and trigger a graceful continue-as-new. @temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) ListQueues added in v0.19.850

func (c *Client) ListQueues(ctx context.Context, orgID, ownerID, ownerType string, limit, offset int) ([]app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) ListQueuesByOrgID added in v0.19.895

func (c *Client) ListQueuesByOrgID(ctx context.Context, orgID string) ([]app.Queue, error)

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) Pause added in v0.19.850

func (c *Client) Pause(ctx context.Context, queueID string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) PollSignal added in v0.19.850

func (c *Client) PollSignal(ctx context.Context, queueSignalID string, opts *PollSignalOptions) (*handler.StatusResponse, error)

func (*Client) QuerySignalStatus added in v0.19.872

func (c *Client) QuerySignalStatus(ctx context.Context, queueSignalID string) (*handler.StatusResponse, error)

QuerySignalStatus queries the status of a signal handler. If the handler workflow is sleeping or completed, it falls back to the database status.

func (*Client) QueueReady

func (c *Client) QueueReady(ctx context.Context, queueID string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) RequestCANAll added in v0.19.903

func (c *Client) RequestCANAll(ctx context.Context, _ *RequestCANAllRequest) (*RequestCANAllResponse, error)

RequestCANAll sets restart_hint on all queues via status_v2 metadata. @temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) Resume added in v0.19.850

func (c *Client) Resume(ctx context.Context, queueID string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) Stop added in v0.19.850

func (c *Client) Stop(ctx context.Context, queueID string) error

@temporal-gen-v2 activity @start-to-close-timeout 1m

func (*Client) Terminate added in v0.19.894

func (c *Client) Terminate(ctx context.Context, queueID string) error

Terminate stops all emitters (cancelling their Temporal workflows), deletes the emitter records, stops the queue workflow, and soft-deletes the queue record.

func (*Client) TerminateStrict added in v0.19.949

func (c *Client) TerminateStrict(ctx context.Context, queueID string) error

type CreateQueueRequest

type CreateQueueRequest struct {
	OrgID *string

	OwnerID   string `validate:"required"`
	OwnerType string `validate:"required"`
	Namespace string `validate:"required"`

	Name     string
	Metadata pgtype.Hstore

	MaxInFlight int
	MaxDepth    int
}

type EnqueueSignalRequest added in v0.19.850

type EnqueueSignalRequest struct {
	QueueID   string        `validate:"required"`
	Signal    signal.Signal `validate:"required"`
	OwnerID   string
	OwnerType string
	ExpiresAt *time.Time
	EmitterID *string

	// Callback describes where the handler should send a Temporal signal on completion.
	// Deprecated: use Callbacks for new code.
	Callback callback.Ref

	// Callbacks supports multiple completion targets.
	Callbacks callback.Refs
}

type EnsureSignalRequest added in v0.19.978

type EnsureSignalRequest struct {
	OwnerID     string              `json:"owner_id" validate:"required"`
	OwnerType   string              `json:"owner_type" validate:"required"`
	SignalTypes []signal.SignalType `json:"signal_types" validate:"required,min=1"`

	// Callback to register on the signal if it is still in flight.
	Callback callback.Ref `json:"callback"`
}

type EnsureSignalResponse added in v0.19.978

type EnsureSignalResponse struct {
	// AlreadyComplete is true if the signal has already finished successfully.
	AlreadyComplete bool   `json:"already_complete"`
	QueueSignalID   string `json:"queue_signal_id"`
}

type FetchEagerStepGroupsRequest added in v0.19.903

type FetchEagerStepGroupsRequest struct {
	QueueSignalID string `json:"queue_signal_id" validate:"required"`
}

type FetchStepsRequest added in v0.19.894

type FetchStepsRequest struct {
	QueueSignalID string `json:"queue_signal_id" validate:"required"`
}

type Params

type Params struct {
	fx.In

	DB       *gorm.DB `name:"psql"`
	Cfg      *internal.Config
	TClient  temporalclient.Client
	L        *zap.Logger
	MW       metrics.Writer
	Enqueuer *enqueuer.Enqueuer
}

type PollSignalOptions added in v0.19.850

type PollSignalOptions struct {
	Timeout      *time.Duration
	PollInterval time.Duration
}

type RequestCANAllRequest added in v0.19.903

type RequestCANAllRequest struct{}

type RequestCANAllResponse added in v0.19.903

type RequestCANAllResponse struct {
	RowsAffected int64 `json:"rows_affected"`
}

Jump to

Keyboard shortcuts

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