delayqueue

package
v0.0.0-...-ff06b4a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBucketName                    = "delay_queue_bucket"
	DefaultReadyQueueName                = "delay_queue_ready_queue"
	DefaultTopicSetName                  = "delay_queue_topic_set"
	DefaultBlockPopFromReadyQueueTimeout = 10
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BucketItem

type BucketItem struct {
	TaskId        string
	TaskTimestamp int64
}

type DelayQueue

type DelayQueue struct {
	// contains filtered or unexported fields
}

func NewDelayQueue

func NewDelayQueue(cfg *conf.DelayQueueService) *DelayQueue

func (*DelayQueue) Close

func (dq *DelayQueue) Close()

func (*DelayQueue) Get

func (dq *DelayQueue) Get(taskId string) (*Task, error)

func (*DelayQueue) Push

func (dq *DelayQueue) Push(task *Task) error

func (*DelayQueue) PushTopic

func (dq *DelayQueue) PushTopic(topic string) error

func (*DelayQueue) Remove

func (dq *DelayQueue) Remove(taskId string) error

func (*DelayQueue) RemoveTopic

func (dq *DelayQueue) RemoveTopic(topic string) error

type ReadyQueue

type ReadyQueue struct {
	// contains filtered or unexported fields
}

func NewReadyQueue

func NewReadyQueue() *ReadyQueue

func (*ReadyQueue) BlockPopFromReadyQueue

func (rq *ReadyQueue) BlockPopFromReadyQueue(inst *redis.RedisConnPoolSingleton, key string, timeout int) (string, error)

func (*ReadyQueue) PushToReadyQueue

func (rq *ReadyQueue) PushToReadyQueue(inst *redis.RedisConnPoolSingleton, key string, jobId string) error

type RedisRWRequest

type RedisRWRequest struct {
	RequestType RedisRequestType
	RequestOp   RedisRWRequestOp
	Inputs      []interface{}
	ResponseCh  chan *RedisRWResponse
}

type RedisRWRequestOp

type RedisRWRequestOp int
const (
	PutTopicRequest  RedisRWRequestOp = 1
	ListTopicRequest RedisRWRequestOp = 2
	HasTopicRequest  RedisRWRequestOp = 3
	DelTopicRequest  RedisRWRequestOp = 4

	PushToBucketRequest     RedisRWRequestOp = 5
	GetOneFromBucketRequest RedisRWRequestOp = 6
	DelFromBucketRequest    RedisRWRequestOp = 7
)

type RedisRWResponse

type RedisRWResponse struct {
	Outputs []interface{}
	Err     error
}

type RedisRequestType

type RedisRequestType int
const (
	TopicRequest  RedisRequestType = 1
	BucketRequest RedisRequestType = 2
)

type Task

type Task struct {
	Topic string `json:"topic" msgpack:"1"` // 任务类型, 可以是具体的业务名称
	Id    string `json:"id" msgpack:"2"`    // 任务唯一标识, 用来检索/删除指定的任务
	Delay int64  `json:"delay" msgpack:"3"` // 任务需要延迟执行的时间, 单位: 秒
	TTR   int64  `json:"ttr" msgpack:"4"`   // 任务执行超时的时间, 单位: 秒
	Blob  string `json:"blob" msgpack:"5"`  // 任务内容, 供消费者做具体的业务处理, 以json格式存储
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL