NewFileTaskManager 创建基于文件的任务管理器
()
| 79 | |
| 80 | // NewFileTaskManager 创建基于文件的任务管理器 |
| 81 | func NewFileTaskManager() *FileTaskManager { |
| 82 | // 创建数据目录 |
| 83 | dataDir := filepath.Join(os.TempDir(), "agentsdk_tasks") |
| 84 | outputDir := filepath.Join(dataDir, "outputs") |
| 85 | |
| 86 | // 确保目录存在 |
| 87 | _ = os.MkdirAll(dataDir, 0755) |
| 88 | _ = os.MkdirAll(outputDir, 0755) |
| 89 | |
| 90 | tm := &FileTaskManager{ |
| 91 | tasks: make(map[string]*TaskInfo), |
| 92 | dataDir: dataDir, |
| 93 | outputDir: outputDir, |
| 94 | cleanupChan: make(chan string, 100), |
| 95 | } |
| 96 | |
| 97 | // 加载现有任务 |
| 98 | _ = tm.loadTasks() |
| 99 | |
| 100 | // 启动清理协程 |
| 101 | go tm.cleanupRoutine() |
| 102 | |
| 103 | return tm |
| 104 | } |
| 105 | |
| 106 | // StartTask 启动后台任务 |
| 107 | func (tm *FileTaskManager) StartTask(ctx context.Context, cmd string, opts *TaskOptions) (*TaskInfo, error) { |
no test coverage detected