xqueue

package
v0.3.32 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2024 License: BSD-3-Clause-Clear Imports: 6 Imported by: 0

Documentation

Overview

通用队列组件(此组件会牺牲部分队列的执行效率,用以建立相对统一的队列处理方案)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add

func Add(funs string, conf *FuncConf)

添加Queue队列

funs	队列下标
conf	推入队列列表

func AddMap added in v0.3.29

func AddMap(funs map[string]func(param []byte) error)

循环添加Queue队列

funs	map[<队列标识[:队列标识名称][:队列标识描述]>]运行的队列监听函数

func List

func List() map[string]FuncConf

获取已插入的队列列表

func Listen

func Listen()

队列监听操作 队列最终的监听操作,此处通过执行 go Listen() 来进行队列的监听 若不需要监听,只需要推送的话,则不需要执行此函数

func Remove

func Remove(fun string)

移除队列任务

fun	队列下标

func Set

func Set(funs string, param any) error

写入队列【若未开启队列的话,将不管队列方法执行的结果,即程序会运行0~1次,即使是失败,所以建议开启NSQ队列,用以保证任务能成功执行】

fun		写入的服务名称,对应读取时的名称配置
param	传入的参数,对应读取时的参数结构

func SetDef

func SetDef(funs string, param any, def time.Duration) error

写入队列-延迟执行

fun		写入的服务名称,对应读取时的名称配置
param	传入的参数,对应读取时的参数结构
def		延迟时间

func SetDervice

func SetDervice(c Queue)

设置事务驱动

c	事务驱动

func SetLogInsert

func SetLogInsert(c func(log *QueueLog))

重新设置日志写入事件

c	写入日志函数操作

Types

type FuncConf

type FuncConf struct {
	Name string                   // 队列任务名称
	Desc string                   // 队列任务描述
	Func func(param []byte) error // 执行的函数操作
}

队列配置结构

type Queue

type Queue interface {
	Set(dat []byte) error                     // 推送队列任务
	SetDef(dat []byte, t time.Duration) error // 推送延时任务
	Listen(f func(dat []byte) error) error    // 队列监听任务
}

队列实现驱动

type QueueLog

type QueueLog struct {
	Id        uint   `gorm:"column:id" xml:"id" form:"id" json:"id"`
	Key       string `gorm:"column:key;size:200" xml:"key" form:"key" json:"key"`                    // 队列key
	Name      string `gorm:"column:name;size:200" xml:"name" form:"name" json:"name"`                // 队列name名称
	Desc      string `gorm:"column:desc;size:200" xml:"desc" form:"desc" json:"desc"`                // 队列帮助描述
	Type      uint8  `gorm:"column:type" xml:"type" form:"type" json:"type"`                         // 操作类型 1-入队 2-执行
	IsError   int8   `gorm:"column:is_error" xml:"is_error" form:"is_error" json:"is_error"`         // 是否产生错误 1-产生了错误
	Error     string `gorm:"column:error" xml:"error" form:"error" json:"error"`                     // 错误描述
	Param     string `gorm:"column:param" xml:"param" form:"param" json:"param"`                     // 队列执行参数
	CreatedAt int64  `gorm:"column:created_at" xml:"created_at" form:"created_at" json:"created_at"` // 操作时间
}

队列执行日志模型

func (*QueueLog) TableName

func (c *QueueLog) TableName() string

type Xq added in v0.3.29

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

队列中继操作

func WithDervice added in v0.3.29

func WithDervice(c Queue) *Xq

以指定驱动运行操作

c	指定的运行队列

func (*Xq) Set added in v0.3.29

func (xq *Xq) Set(funs string, param any) error

写入队列【若未开启队列的话,将不管队列方法执行的结果,即程序会运行0~1次,即使是失败,所以建议开启NSQ队列,用以保证任务能成功执行】

fun		写入的服务名称,对应读取时的名称配置
param	传入的参数,对应读取时的参数结构

func (*Xq) SetDef added in v0.3.29

func (xq *Xq) SetDef(funs string, param any, def time.Duration) error

写入队列-延迟执行

fun		写入的服务名称,对应读取时的名称配置
param	传入的参数,对应读取时的参数结构
def		延迟时间

Directories

Path Synopsis
队列所使用的驱动所在目录
队列所使用的驱动所在目录
xqueuensq
NSQ驱动xqueue队列
NSQ驱动xqueue队列

Jump to

Keyboard shortcuts

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