2023-11-08 21:53:07 +08:00

38 lines
802 B
Go

package global
import (
"sun-panel/lib/queue"
"sun-panel/lib/queue/queueMemory"
"sun-panel/lib/queue/queueRedis"
"sun-panel/structs"
)
// 缓存驱动
const (
QUEUE_DRIVE_REDIS = "redis"
QUEUE_DRIVE_MEMORY = "memory"
)
// 创建一个队列
// name:缓存名称
func NewQueuer(name string) queue.Queuer {
drive := Config.GetValueString("base", "queue_drive")
if drive == "" {
drive = CACHE_DRIVE_MEMORY
}
var queuer queue.Queuer
Logger.Debugln("队列驱动:", drive)
switch drive {
case CACHE_DRIVE_MEMORY:
queuer = queueMemory.New()
case CACHE_DRIVE_REDIS:
redisConfig := structs.IniConfigRedis{}
if err := Config.GetSection("redis", &redisConfig); err != nil {
redisConfig.Prefix = ""
}
queuer = queueRedis.New(RedisDb, redisConfig.Prefix+name)
}
return queuer
}