Files
tyapi-server/internal/infrastructure/task/factory.go
2025-09-12 01:15:09 +08:00

45 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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