Documentation
¶
Index ¶
- Constants
- func Enqueue(ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, ...) (queue.EnqueueReceipt, error)
- func EnqueueAfter(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueueAfterWithOptions(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueueAt(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueueAtWithOptions(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueuePayloadAfterWithOptions[T any](ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueuePayloadAtWithOptions[T any](ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, ...) (queue.EnqueueReceipt, error)
- func EnqueuePayloadWithOptions[T any](ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, ...) (queue.EnqueueReceipt, error)
- func EnqueueWithOptions(ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, ...) (queue.EnqueueReceipt, error)
- func NewLocalWorker(dequeuer queue.Dequeuer, reg *Registry, cfg LocalWorkerConfig) (*worker.Worker, error)
- func ParametersFromPayload[T any](payload T) (map[string]any, error)
- func QueueResolver(reg *Registry) command.Resolver
- func RegisterAll(w *worker.Worker, reg *Registry, ids []string) error
- func RegisterCommand[T any](reg *Registry, cmd command.Commander[T]) error
- func RegisterCommandByType(reg *Registry, cmd any, meta command.CommandMeta) error
- func RegisterCommandWithRegistry[T any](_ *Registry, cmd command.Commander[T], runnerOpts ...runner.Option) (dispatcher.Subscription, error)
- func StartLocalWorker(ctx context.Context, dequeuer queue.Dequeuer, reg *Registry, ...) (*worker.Worker, error)
- type ConfigProvider
- type EnqueueOptions
- type Entry
- type HandlerFunc
- type LocalWorkerConfig
- type Registry
- type Task
- func (t *Task) Execute(ctx context.Context, msg *job.ExecutionMessage) error
- func (t *Task) GetConfig() job.Config
- func (t *Task) GetEngine() job.Engine
- func (t *Task) GetHandler() func() error
- func (t *Task) GetHandlerConfig() job.HandlerOptions
- func (t *Task) GetID() string
- func (t *Task) GetPath() string
Constants ¶
const (
// DispatchMetadataKey is the reserved execution parameter key for enqueue metadata.
DispatchMetadataKey = "_dispatch_metadata"
)
Variables ¶
This section is empty.
Functions ¶
func Enqueue ¶
func Enqueue(ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, params map[string]any) (queue.EnqueueReceipt, error)
Enqueue validates the command id and enqueues a background job.
func EnqueueAfter ¶ added in v0.15.0
func EnqueueAfter(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, params map[string]any, delay time.Duration) (queue.EnqueueReceipt, error)
EnqueueAfter validates the command id and schedules a delayed background job.
func EnqueueAfterWithOptions ¶ added in v0.16.0
func EnqueueAfterWithOptions(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, params map[string]any, delay time.Duration, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueueAfterWithOptions validates command enqueue inputs for explicit delayed execution.
func EnqueueAt ¶ added in v0.15.0
func EnqueueAt(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, params map[string]any, at time.Time) (queue.EnqueueReceipt, error)
EnqueueAt validates the command id and schedules a background job.
func EnqueueAtWithOptions ¶ added in v0.16.0
func EnqueueAtWithOptions(ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, params map[string]any, at time.Time, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueueAtWithOptions validates command enqueue inputs for explicit scheduled execution.
func EnqueuePayloadAfterWithOptions ¶ added in v0.16.0
func EnqueuePayloadAfterWithOptions[T any](ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, payload T, delay time.Duration, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueuePayloadAfterWithOptions converts a typed payload into queue parameters and schedules it after a delay.
func EnqueuePayloadAtWithOptions ¶ added in v0.16.0
func EnqueuePayloadAtWithOptions[T any](ctx context.Context, enqueuer queue.ScheduledEnqueuer, reg *Registry, id string, payload T, at time.Time, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueuePayloadAtWithOptions converts a typed payload into queue parameters and schedules it at a specific time.
func EnqueuePayloadWithOptions ¶ added in v0.16.0
func EnqueuePayloadWithOptions[T any](ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, payload T, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueuePayloadWithOptions converts a typed payload into queue parameters and enqueues it.
func EnqueueWithOptions ¶ added in v0.16.0
func EnqueueWithOptions(ctx context.Context, enqueuer queue.Enqueuer, reg *Registry, id string, params map[string]any, opts EnqueueOptions) (queue.EnqueueReceipt, error)
EnqueueWithOptions validates command enqueue inputs and returns queue acceptance metadata.
func NewLocalWorker ¶ added in v0.16.0
func NewLocalWorker(dequeuer queue.Dequeuer, reg *Registry, cfg LocalWorkerConfig) (*worker.Worker, error)
NewLocalWorker builds a worker and registers command tasks from the queue command registry.
func ParametersFromPayload ¶ added in v0.16.0
ParametersFromPayload maps a typed payload to queue parameters via JSON tags.
func QueueResolver ¶
QueueResolver registers go-command handlers with the queue registry.
func RegisterAll ¶
RegisterAll registers command tasks with a worker. When ids is empty, all registered commands are added.
func RegisterCommand ¶
RegisterCommand registers a command with the queue registry.
func RegisterCommandByType ¶
func RegisterCommandByType(reg *Registry, cmd any, meta command.CommandMeta) error
RegisterCommandByType registers a command using resolver metadata.
func RegisterCommandWithRegistry ¶
func RegisterCommandWithRegistry[T any](_ *Registry, cmd command.Commander[T], runnerOpts ...runner.Option) (dispatcher.Subscription, error)
RegisterCommandWithRegistry registers a command with go-command registry. Queue registration is handled by QueueResolver during registry initialization.
Types ¶
type ConfigProvider ¶
ConfigProvider allows commands to specify job config.
type EnqueueOptions ¶ added in v0.16.0
type EnqueueOptions struct {
Delay time.Duration
RunAt *time.Time
IdempotencyKey string
DedupPolicy job.DeduplicationPolicy
CorrelationID string
Metadata map[string]any
// IdempotencyStore enables durable deduplication for drop|merge|replace policies.
IdempotencyStore qidempotency.Store
// IdempotencyTTL controls dedup record expiration. Defaults to 24h when unset.
IdempotencyTTL time.Duration
}
EnqueueOptions defines dispatch metadata used by queue-backed command enqueue paths.
type Entry ¶
type Entry struct {
ID string
MessageType string
Config job.Config
Handler HandlerFunc
}
Entry tracks a registered command handler.
type HandlerFunc ¶
HandlerFunc executes a command using decoded parameters.
type LocalWorkerConfig ¶ added in v0.16.0
LocalWorkerConfig configures local same-machine queue worker bootstrap.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry stores command handlers by id.
type Task ¶
type Task struct {
// contains filtered or unexported fields
}
Task adapts a command registry entry into a job.Task.
func (*Task) GetHandler ¶
func (*Task) GetHandlerConfig ¶
func (t *Task) GetHandlerConfig() job.HandlerOptions