- 新增操作日志表(asynch_op_log)及对应DAO,记录任务创建等操作的审计信息 - 新增任务分页查询接口(ListTask)及对应DTO、Service和DAO方法 - 优化模型调用失败重试逻辑:支持配置重试排队策略(插队到队首或队尾) - 新增临时文件存储机制,当模型调用成功但OSS上传失败时,下次仅重试OSS上传 - 模型配置新增retry_queue_max_seconds字段,控制失败重试排队策略 - 更新数据库表结构(asynch_models、asynch_task、新增asynch_op_log)及同步更新SQL - 配置文件调整:超时单位改为秒,更新服务地址和轮询间隔 - 修复模型列表查询支持按名称模糊搜索
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package controller
|
||
|
||
import (
|
||
"context"
|
||
|
||
"model-asynch/model/dto"
|
||
"model-asynch/service"
|
||
)
|
||
|
||
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) {
|
||
ctx = ensureUser(ctx)
|
||
return service.Task.Create(ctx, req)
|
||
}
|
||
|
||
// GetTaskResult 获取任务结果(只返回 oss 地址 + state)
|
||
func (c *task) GetTaskResult(ctx context.Context, req *dto.GetTaskResultReq) (res *dto.GetTaskResultRes, err error) {
|
||
ctx = ensureUser(ctx)
|
||
return service.Task.GetResult(ctx, req.TaskID)
|
||
}
|
||
|
||
// GetTaskBatch 批量查询任务(成功任务标记为已下载)
|
||
func (c *task) GetTaskBatch(ctx context.Context, req *dto.GetTaskBatchReq) (res *dto.GetTaskBatchRes, err error) {
|
||
ctx = ensureUser(ctx)
|
||
return service.Task.GetBatch(ctx, req)
|
||
}
|
||
|
||
// ListTask 任务列表分页查询
|
||
func (c *task) ListTask(ctx context.Context, req *dto.ListTaskReq) (res *dto.ListTaskRes, err error) {
|
||
ctx = ensureUser(ctx)
|
||
return service.Task.List(ctx, req)
|
||
}
|