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) }