Documentation ¶
Index ¶
Constants ¶
View Source
const ( MinRetryMax int64 = 0 MaxRetryMax int64 = 100 DefaultRetryMax int64 = 5 MinRetryDelay int64 = 1 MaxRetryDelay int64 = 86_400 DefaultRetryDelay int64 = 5 DefaultRetryStrategy = RetryStrategyConstant MinTimeout int64 = 1 MaxTimeout int64 = 7200 DefaultTimeout int64 = 60 RetryStrategyConstant RetryStrategy = 0 RetryStrategyExponential RetryStrategy = 1 JobStatusQueued JobStatus = 0 JobStatusRunning JobStatus = 1 JobStatusFailed JobStatus = 2 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Job ¶
type Job struct { ID guid.GUID `db:"id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` ScheduledFor time.Time `db:"scheduled_for"` FailedAttempts int64 `db:"failed_attempts"` // priority: i64, Status JobStatus `db:"status"` Type string `db:"type"` RawData json.RawMessage `db:"data"` RetryMax int64 `db:"retry_max"` RetryDelay int64 `db:"retry_delay"` RetryStrategy RetryStrategy `db:"retry_strategy"` Timeout int64 `db:"timeout"` }
type NewJobInput ¶
type NewJobInput struct { Type string Data any // ScheduledFor is the date when the job should be scheduled for // now() if empty ScheduledFor *time.Time // RetryMax is the max number of times a job should be retried // 0-100 // default: 5 RetryMax *int64 // RetryDelay is the number of seconds between 2 retry attempts // 1-86400 // default: 5 RetryDelay *int64 // constant, exponential // default: Constant RetryStrategy RetryStrategy // 1-7200 // default: 60 Timeout *int64 }
type Queue ¶
type Queue interface { Push(ctx context.Context, tx db.Queryer, newJob NewJobInput) error // pull fetches at most `number_of_jobs` from the queue. Pull(ctx context.Context, numberOfJobs int64) ([]Job, error) DeleteJob(ctx context.Context, jobID guid.GUID) error FailJob(ctx context.Context, job Job) error Clear(ctx context.Context) error Stop(ctx context.Context) }
Click to show internal directories.
Click to hide internal directories.