55 lines
2.0 KiB
Go
55 lines
2.0 KiB
Go
package controller
|
||
|
||
import (
|
||
"context"
|
||
"model-gateway/service/job"
|
||
taskService "model-gateway/service/task"
|
||
|
||
"model-gateway/model/dto"
|
||
)
|
||
|
||
type task struct{}
|
||
|
||
// Task 任务控制器
|
||
var Task = new(task)
|
||
|
||
// CreateTask 根据 modelName 创建异步任务,返回 taskId
|
||
func (c *task) CreateTask(ctx context.Context, req *dto.CreateTaskReq) (res *dto.CreateTaskRes, err error) {
|
||
return taskService.Task.Create(ctx, req)
|
||
}
|
||
|
||
// ModelTaskCallback 接收模型异步任务的回调通知
|
||
func (c *task) ModelTaskCallback(ctx context.Context, req *dto.ModelTaskCallbackReq) (res *dto.ModelTaskCallbackRes, err error) {
|
||
return taskService.Task.ModelTaskCallback(ctx, req)
|
||
}
|
||
|
||
// QueryPendingTasks 批量轮询进行中的异步任务
|
||
func (c *task) QueryPendingTasks(ctx context.Context, req *dto.QueryPendingTasksReq) (res *dto.QueryPendingTasksRes, err error) {
|
||
return taskService.Task.QueryPendingTasks(ctx, req)
|
||
}
|
||
|
||
// GetTaskResult 获取任务结果(只返回 oss 地址 + state)
|
||
func (c *task) GetTaskResult(ctx context.Context, req *dto.GetTaskResultReq) (res *dto.GetTaskResultRes, err error) {
|
||
return taskService.Task.GetResult(ctx, req.TaskID)
|
||
}
|
||
|
||
// GetTaskBatch 批量查询任务(成功任务标记为已下载)
|
||
func (c *task) GetTaskBatch(ctx context.Context, req *dto.GetTaskBatchReq) (res *dto.GetTaskBatchRes, err error) {
|
||
return taskService.Task.GetBatch(ctx, req)
|
||
}
|
||
|
||
// ListTask 任务列表分页查询
|
||
func (c *task) ListTask(ctx context.Context, req *dto.ListTaskReq) (res *dto.ListTaskRes, err error) {
|
||
return taskService.Task.List(ctx, req)
|
||
}
|
||
|
||
// RunWork 手动触发一次 worker(由上层定时任务调用)
|
||
func (c *task) RunWork(ctx context.Context, req *dto.RunWorkReq) (res *dto.RunWorkRes, err error) {
|
||
return taskService.AsyncWorker.RunOnce(ctx, req)
|
||
}
|
||
|
||
// CleanWork 手动触发一次 cleaner(由上层定时任务调用)
|
||
func (c *task) CleanWork(ctx context.Context, req *dto.CleanWorkReq) (res *dto.CleanWorkRes, err error) {
|
||
return job.Cleaner.RunOnce(ctx)
|
||
}
|