38 lines
802 B
Go
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
|
|
}
|