1 Star 0 Fork 0

sven / gqueue

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
queue.go 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
sven 提交于 2021-10-23 07:37 . 1
package gqueue
import (
"fmt"
"github.com/beego/beego/v2/core/logs"
)
type QueueDrive string
const (
RedisDrive QueueDrive = "redis"
)
var (
globalQueue IQueue
)
type IQueue interface {
// Publish 发布消息,返回消息id
Publish(queueName, msg string) (string, error)
// Subscribe 订阅消息,成功后执行回调函数,
// 回调返回true会自动ack,返回false不会ack
Subscribe(queueName string, cb func(msg string) bool)
}
// QueueFactory 实例化消息队列
func QueueFactory(queueDrive QueueDrive, option string) (IQueue, error) {
if queueDrive == RedisDrive {
return NewQueueRedis(option)
} else {
return nil, fmt.Errorf("%s is not support", queueDrive)
}
}
// InitGlobalQueue 初始化全局队列
func InitGlobalQueue(queueDrive QueueDrive, option string) error {
var err error
globalQueue, err = QueueFactory(queueDrive, option)
if err != nil {
logs.Error("InitGlobalQueue err", err)
}
return err
}
// GetGlobalQueue 返回全局队列
func GetGlobalQueue() IQueue {
return globalQueue
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zjlsliupei/gqueue.git
git@gitee.com:zjlsliupei/gqueue.git
zjlsliupei
gqueue
gqueue
master

搜索帮助