new
This commit is contained in:
45
internal/infrastructure/task/factory.go
Normal file
45
internal/infrastructure/task/factory.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"tyapi-server/internal/infrastructure/task/implementations/asynq"
|
||||
"tyapi-server/internal/infrastructure/task/interfaces"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// TaskFactory 任务工厂
|
||||
type TaskFactory struct{}
|
||||
|
||||
// NewTaskFactory 创建任务工厂
|
||||
func NewTaskFactory() *TaskFactory {
|
||||
return &TaskFactory{}
|
||||
}
|
||||
|
||||
// CreateApiTaskQueue 创建API任务队列
|
||||
func (f *TaskFactory) CreateApiTaskQueue(redisAddr string, logger interface{}) interfaces.ApiTaskQueue {
|
||||
// 这里可以根据配置选择不同的实现
|
||||
// 目前使用Asynq实现
|
||||
return asynq.NewAsynqApiTaskQueue(redisAddr, logger.(*zap.Logger))
|
||||
}
|
||||
|
||||
// CreateArticleTaskQueue 创建文章任务队列
|
||||
func (f *TaskFactory) CreateArticleTaskQueue(redisAddr string, logger interface{}) interfaces.ArticleTaskQueue {
|
||||
// 这里可以根据配置选择不同的实现
|
||||
// 目前使用Asynq实现
|
||||
return asynq.NewAsynqArticleTaskQueue(redisAddr, logger.(*zap.Logger))
|
||||
}
|
||||
|
||||
// NewApiTaskQueue 创建API任务队列(包级别函数)
|
||||
func NewApiTaskQueue(redisAddr string, logger *zap.Logger) interfaces.ApiTaskQueue {
|
||||
return asynq.NewAsynqApiTaskQueue(redisAddr, logger)
|
||||
}
|
||||
|
||||
// NewAsynqClient 创建Asynq客户端(包级别函数)
|
||||
func NewAsynqClient(redisAddr string, scheduledTaskRepo interface{}, logger *zap.Logger) *asynq.AsynqClient {
|
||||
return asynq.NewAsynqClient(redisAddr, logger)
|
||||
}
|
||||
|
||||
// NewArticleTaskQueue 创建文章任务队列(包级别函数)
|
||||
func NewArticleTaskQueue(redisAddr string, logger *zap.Logger) interfaces.ArticleTaskQueue {
|
||||
return asynq.NewAsynqArticleTaskQueue(redisAddr, logger)
|
||||
}
|
||||
Reference in New Issue
Block a user