45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# Scheduled Tasks module
|
|||
|
|
|
||
|
|
Server-owned scheduled task runtime and routes for OpenChamber-only automation.
|
||
|
|
|
||
|
|
## Scope
|
||
|
|
|
||
|
|
- Per-project scheduled task persistence is owned by `packages/web/server/lib/projects/project-config.js`.
|
||
|
|
- Runtime orchestration and execution is owned by this module.
|
||
|
|
- This module is OpenChamber feature logic; it is intentionally separate from OpenCode proxy/runtime internals.
|
||
|
|
|
||
|
|
## Files
|
||
|
|
|
||
|
|
- `packages/web/server/lib/scheduled-tasks/runtime.js`
|
||
|
|
- Next-run computation (daily/weekly/cron compatibility)
|
||
|
|
- Timer scheduling and queueing
|
||
|
|
- Concurrency controls
|
||
|
|
- Session create + prompt_async execution
|
||
|
|
- Emits OpenChamber task-run events
|
||
|
|
|
||
|
|
- `packages/web/server/lib/scheduled-tasks/routes.js`
|
||
|
|
- Scheduled task CRUD endpoints
|
||
|
|
- Manual run endpoint
|
||
|
|
- OpenChamber events SSE stream endpoint
|
||
|
|
|
||
|
|
## Public exports (runtime.js)
|
||
|
|
|
||
|
|
- `createScheduledTasksRuntime(dependencies)`
|
||
|
|
- Returned API:
|
||
|
|
- `start()`
|
||
|
|
- `stop()`
|
||
|
|
- `syncAllProjects()`
|
||
|
|
- `syncProject(projectId)`
|
||
|
|
- `runNow(projectId, taskId)`
|
||
|
|
|
||
|
|
## Public exports (routes.js)
|
||
|
|
|
||
|
|
- `registerScheduledTaskRoutes(app, dependencies)`
|
||
|
|
- Registers:
|
||
|
|
- `GET /api/projects/:projectId/scheduled-tasks`
|
||
|
|
- `PUT /api/projects/:projectId/scheduled-tasks`
|
||
|
|
- `DELETE /api/projects/:projectId/scheduled-tasks/:taskId`
|
||
|
|
- `POST /api/projects/:projectId/scheduled-tasks/:taskId/run`
|
||
|
|
- `GET /api/openchamber/scheduled-tasks/status`
|
||
|
|
- `GET /api/openchamber/events`
|