Documentation
¶
Index ¶
- Constants
- Variables
- type Partition
- type PartitionList
- type PartitionListRequest
- type PartitionMeta
- type PartitionName
- type PartitionSeq
- type PartitionSeqRequest
- type Queue
- type QueueCleanRequest
- type QueueCleanResponse
- type QueueList
- type QueueListRequest
- type QueueMeta
- type QueueName
- type QueueStatus
- type QueueStatusRequest
- type QueueStatusResponse
- type Task
- type TaskFunc
- type TaskId
- type TaskList
- type TaskListRequest
- type TaskMeta
- type TaskRelease
- type TaskRetain
- type TaskWithStatus
- type Ticker
- type TickerList
- type TickerListRequest
- type TickerMeta
- type TickerName
- type TickerNext
Constants ¶
View Source
const ( DefaultSchema = "pgqueue" DefaultNotifyChannel = "queue_notify" QueueListLimit = 100 TickerListLimit = 100 DefaultPartitionSize = 100_000 // tasks per partition DefaultPartitionThreshold = 0.5 // create partition(s) when sequence reaches this fraction of the highest partition end DefaultPartitionAhead = 1 // number of partition(s) to create when threshold is reached DefaultMaintenanceTickerName = "$maintenance$" DefaultCleanupTickerName = "$cleanup$" DefaultTickerPeriod = 5 * time.Second // how often to look for matured tickers DefaultQueuePeriod = 10 * time.Second // how often to poll queues for retries and missed notifications DefaultCleanupPeriod = 15 * time.Minute // how often to delete expired tasks DefaultMaintenancePeriod = 10 * time.Minute // create and drop partitions )
Variables ¶
View Source
var Objects string
View Source
var Queries string
Functions ¶
This section is empty.
Types ¶
type Partition ¶
type Partition struct {
PartitionMeta
Count uint64 `json:"count" db:"count"`
}
type PartitionList ¶
type PartitionList struct {
Body []Partition `json:"body,omitempty"`
}
func (PartitionList) String ¶
func (p PartitionList) String() string
type PartitionListRequest ¶
type PartitionListRequest struct{}
func (PartitionListRequest) String ¶
func (p PartitionListRequest) String() string
type PartitionMeta ¶
type PartitionMeta struct {
Partition string `json:"partition" db:"partition"`
Start uint64 `json:"start" db:"start"`
End uint64 `json:"end" db:"end"`
}
func (PartitionMeta) String ¶
func (p PartitionMeta) String() string
type PartitionName ¶
type PartitionName string
func (PartitionName) String ¶
func (p PartitionName) String() string
type PartitionSeq ¶
type PartitionSeq uint64
func (PartitionSeq) String ¶
func (p PartitionSeq) String() string
type PartitionSeqRequest ¶
type PartitionSeqRequest struct{}
func (PartitionSeqRequest) String ¶
func (p PartitionSeqRequest) String() string
type QueueCleanRequest ¶
type QueueCleanRequest struct {
Queue string `json:"queue,omitempty" arg:"" help:"Queue name"`
}
func (QueueCleanRequest) String ¶
func (q QueueCleanRequest) String() string
type QueueCleanResponse ¶
type QueueCleanResponse struct {
QueueCleanRequest
Body []Task `json:"body,omitempty"`
}
func (QueueCleanResponse) String ¶
func (q QueueCleanResponse) String() string
type QueueList ¶
type QueueList struct {
QueueListRequest
Count uint64 `json:"count"`
Body []Queue `json:"body,omitempty"`
}
type QueueListRequest ¶
type QueueListRequest struct {
pg.OffsetLimit
}
func (QueueListRequest) String ¶
func (q QueueListRequest) String() string
type QueueMeta ¶
type QueueMeta struct {
TTL *time.Duration `json:"ttl,omitempty" help:"Time-to-live for queue messages"`
Retries *uint64 `json:"retries" help:"Number of retries before failing"`
RetryDelay *time.Duration `json:"retry_delay" help:"Backoff delay"`
Concurrency *uint64 `json:"concurrency" help:"Number of concurrent workers"`
}
type QueueStatus ¶
type QueueStatus struct {
Queue string `json:"queue"`
Status string `json:"status"`
Count uint64 `json:"count"`
}
func (QueueStatus) String ¶
func (q QueueStatus) String() string
type QueueStatusRequest ¶
type QueueStatusRequest struct{}
type QueueStatusResponse ¶
type QueueStatusResponse struct {
QueueStatusRequest
Body []QueueStatus `json:"body,omitempty"`
}
func (QueueStatusResponse) String ¶
func (q QueueStatusResponse) String() string
type Task ¶
type Task struct {
Id uint64 `json:"id,omitempty"`
Queue string `json:"queue,omitempty"`
Worker *string `json:"worker,omitempty"`
Result json.RawMessage `json:"result,omitempty"`
TaskMeta
CreatedAt *time.Time `json:"created_at,omitempty"`
StartedAt *time.Time `json:"started_at,omitempty"`
FinishedAt *time.Time `json:"finished_at,omitempty"`
DiesAt *time.Time `json:"dies_at,omitempty"`
Retries *uint64 `json:"retries,omitempty"`
}
type TaskList ¶
type TaskList struct {
TaskListRequest
Count uint64 `json:"count"`
Body []TaskWithStatus `json:"body,omitempty"`
}
type TaskListRequest ¶
type TaskListRequest struct {
pg.OffsetLimit
Status string `json:"status,omitempty"`
}
type TaskMeta ¶
type TaskMeta struct {
Payload json.RawMessage `json:"payload,omitempty"`
DelayedAt *time.Time `json:"delayed_at,omitempty"`
}
type TaskRelease ¶
type TaskRelease struct {
Id uint64 `json:"id,omitempty"`
Fail bool `json:"fail,omitempty"`
Result json.RawMessage `json:"result,omitempty"`
}
type TaskRetain ¶
type TaskWithStatus ¶
func (TaskWithStatus) String ¶
func (t TaskWithStatus) String() string
type Ticker ¶
type Ticker struct {
Ticker string `json:"ticker" arg:"" help:"Ticker name"`
TickerMeta
LastAt *time.Time `json:"last_at,omitempty"`
}
type TickerList ¶
type TickerList struct {
TickerListRequest
Count uint64 `json:"count"`
Body []Ticker `json:"body,omitempty"`
}
func (TickerList) String ¶
func (t TickerList) String() string
type TickerListRequest ¶
type TickerListRequest struct {
pg.OffsetLimit
}
func (TickerListRequest) String ¶
func (t TickerListRequest) String() string
type TickerMeta ¶
type TickerMeta struct {
Payload json.RawMessage `json:"payload,omitempty"`
Interval *time.Duration `json:"interval,omitempty" help:"Interval (default 1 minute)"`
}
func (TickerMeta) String ¶
func (t TickerMeta) String() string
type TickerName ¶
type TickerName string
func (TickerName) Validate ¶
func (t TickerName) Validate() (string, error)
type TickerNext ¶
type TickerNext struct{}
func (TickerNext) String ¶
func (t TickerNext) String() string
Click to show internal directories.
Click to hide internal directories.