Documentation
¶
Index ¶
Constants ¶
View Source
const ( RRID string = "rr_id" RRJob string = "rr_job" RRHeaders string = "rr_headers" RRPipeline string = "rr_pipeline" RRDelay string = "rr_delay" RRPriority string = "rr_priority" )
constant keys to pack/unpack messages from different drivers
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Acknowledger ¶
type Acknowledger interface {
// Ack - acknowledge the Item after processing
Ack() error
// Nack - discard the Item
Nack() error
// Requeue - put the message back to the queue with the optional delay
Requeue(headers map[string][]string, delay int64) error
// Respond to the queue
Respond(payload []byte, queue string) error
}
Acknowledger provides queue specific item management
type Constructor ¶
type Constructor interface {
ConsumerFromConfig(configKey string, queue pq.Queue) (Consumer, error)
ConsumerFromPipeline(pipe *pipeline.Pipeline, queue pq.Queue) (Consumer, error)
}
Constructor constructs Consumer interface. Endure abstraction.
type Consumer ¶
type Consumer interface {
Push(ctx context.Context, job *Job) error
Register(ctx context.Context, pipeline *pipeline.Pipeline) error
Run(ctx context.Context, pipeline *pipeline.Pipeline) error
Stop(ctx context.Context) error
Pause(ctx context.Context, pipeline string)
Resume(ctx context.Context, pipeline string)
// State provide information about driver state
State(ctx context.Context) (*State, error)
}
Consumer represents a single jobs driver interface
type Job ¶
type Job struct {
// Job contains name of job broker (usually PHP class).
Job string `json:"job"`
// Ident is unique identifier of the job, should be provided from outside
Ident string `json:"id"`
// Payload is string data (usually JSON) passed to Job broker.
Payload string `json:"payload"`
// Headers with key-value pairs
Headers map[string][]string `json:"headers"`
// Options contains set of PipelineOptions specific to job execution. Can be empty.
Options *Options `json:"options,omitempty"`
}
Job carries information about single job.
type Options ¶
type Options struct {
// Priority is job priority, default - 10
// pointer to distinguish 0 as a priority and nil as priority not set
Priority int64 `json:"priority"`
// Pipeline manually specified pipeline.
Pipeline string `json:"pipeline,omitempty"`
// Delay defines time duration to delay execution for. Defaults to none.
Delay int64 `json:"delay,omitempty"`
//
AutoAck bool `json:"auto_ack"`
}
Options carry information about how to handle given job.
func (*Options) DelayDuration ¶
DelayDuration returns delay duration in a form of time.Duration.
type State ¶
type State struct {
// Pipeline name
Pipeline string
// Driver name
Driver string
// Queue name (tube for the beanstalk)
Queue string
// Active jobs which are consumed from the driver but not handled by the PHP worker yet
Active int64
// Delayed jobs
Delayed int64
// Reserved jobs which are in the driver but not consumed yet
Reserved int64
// Status - 1 Ready, 0 - Paused
Ready bool
}
State represents job's state
Click to show internal directories.
Click to hide internal directories.