Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrHandlerMissing = errors.New("task handler is required")
ErrHandlerMissing indicates a job handler was not provided.
var ErrRunnerClosed = errors.New("task runner is closed")
ErrRunnerClosed indicates the runner is shutting down.
Functions ¶
func DefaultRetryDecider ¶
DefaultRetryDecider retries unless the error is from context cancellation.
Types ¶
type BackoffFunc ¶
BackoffFunc returns the backoff duration for a retry attempt.
func ExponentialBackoff ¶
func ExponentialBackoff(base, max time.Duration) BackoffFunc
ExponentialBackoff returns a backoff function with exponential growth.
type DeadLetter ¶
DeadLetter captures a job that failed permanently.
type Job ¶
type Job struct {
Name string
Handler Handler
Context context.Context
Retry *RetryPolicy
Timeout time.Duration
OnRetry func(RetryInfo)
OnDeadLetter func(DeadLetter)
}
Job describes a background task.
type Options ¶
type Options struct {
Workers int
QueueSize int
Retry *RetryPolicy
Timeout time.Duration
OnRetry func(RetryInfo)
OnDeadLetter func(DeadLetter)
Sleep func(time.Duration)
}
Options configures a Runner.
func DefaultOptions ¶
func DefaultOptions() Options
DefaultOptions returns a Runner configuration with sane defaults.
type RetryDecider ¶
RetryDecider decides whether a retry should be attempted.
type RetryPolicy ¶
type RetryPolicy struct {
MaxRetries int
Backoff BackoffFunc
RetryIf RetryDecider
}
RetryPolicy defines retry behavior.
func DefaultRetryPolicy ¶
func DefaultRetryPolicy() RetryPolicy
DefaultRetryPolicy returns a retry configuration with exponential backoff.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner manages background jobs.
func (*Runner) EnqueueContext ¶
EnqueueContext schedules a job, honoring context cancellation while waiting.