Documentation
¶
Index ¶
- func SerializeJob(job *Job) ([]byte, error)
- type FailedJob
- type Handler
- type Job
- type JobError
- type Manager
- type MemoryQueue
- func (m *MemoryQueue) Ack(ctx context.Context, job *Job) error
- func (m *MemoryQueue) Close() error
- func (m *MemoryQueue) Fail(ctx context.Context, job *Job, err error) error
- func (m *MemoryQueue) Failed(ctx context.Context, limit int) ([]*Job, error)
- func (m *MemoryQueue) Pop(ctx context.Context, queue string) (*Job, error)
- func (m *MemoryQueue) Push(ctx context.Context, job *Job) error
- func (m *MemoryQueue) Retry(ctx context.Context, jobID string) error
- type Queue
- type RedisClient
- type RedisQueue
- func (r *RedisQueue) Ack(ctx context.Context, job *Job) error
- func (r *RedisQueue) Close() error
- func (r *RedisQueue) Fail(ctx context.Context, job *Job, err error) error
- func (r *RedisQueue) Failed(ctx context.Context, limit int) ([]*Job, error)
- func (r *RedisQueue) Pop(ctx context.Context, queue string) (*Job, error)
- func (r *RedisQueue) Push(ctx context.Context, job *Job) error
- func (r *RedisQueue) Retry(ctx context.Context, jobID string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SerializeJob ¶
SerializeJob serializes a job to JSON
Types ¶
type Job ¶
type Job struct {
ID string `json:"id"`
Queue string `json:"queue"`
Handler string `json:"handler"`
Payload map[string]interface{} `json:"payload"`
Attempts int `json:"attempts"`
MaxTries int `json:"max_tries"`
Timeout time.Duration `json:"timeout"`
CreatedAt time.Time `json:"created_at"`
StartedAt *time.Time `json:"started_at,omitempty"`
}
Job represents a queued job
func DeserializeJob ¶
DeserializeJob deserializes a job from JSON
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages job handlers and queue operations
func (*Manager) Dispatch ¶
func (m *Manager) Dispatch(ctx context.Context, handlerName string, payload map[string]interface{}) error
Dispatch pushes a job to the queue
type MemoryQueue ¶
type MemoryQueue struct {
// contains filtered or unexported fields
}
MemoryQueue implements Queue using in-memory channels (for testing/dev)
func NewMemoryQueue ¶
func NewMemoryQueue() *MemoryQueue
NewMemoryQueue creates a new in-memory queue
func (*MemoryQueue) Close ¶
func (m *MemoryQueue) Close() error
type Queue ¶
type Queue interface {
// Push adds a job to the queue
Push(ctx context.Context, job *Job) error
// Pop retrieves a job from the queue
Pop(ctx context.Context, queue string) (*Job, error)
// Ack acknowledges job completion
Ack(ctx context.Context, job *Job) error
// Fail marks a job as failed
Fail(ctx context.Context, job *Job, err error) error
// Retry requeues a failed job
Retry(ctx context.Context, jobID string) error
// Failed returns failed jobs
Failed(ctx context.Context, limit int) ([]*Job, error)
// Close closes the queue connection
Close() error
}
Queue interface for different queue backends
type RedisClient ¶
type RedisClient interface {
RPush(ctx context.Context, key string, values ...interface{}) error
BLPop(ctx context.Context, timeout time.Duration, keys ...string) ([]string, error)
LPush(ctx context.Context, key string, values ...interface{}) error
LRange(ctx context.Context, key string, start, stop int64) ([]string, error)
Del(ctx context.Context, keys ...string) error
Close() error
}
RedisClient interface for Redis operations
type RedisQueue ¶
type RedisQueue struct {
// contains filtered or unexported fields
}
RedisQueue implements Queue using Redis lists
func NewRedisQueue ¶
func NewRedisQueue(client RedisClient, prefix string) *RedisQueue
NewRedisQueue creates a new Redis queue
func (*RedisQueue) Close ¶
func (r *RedisQueue) Close() error
Click to show internal directories.
Click to hide internal directories.