feat: multiple updates - alerts, auth, sectors, rotation service, financials ingestion, task specs, and agent framework
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Task: Pipeline task definitions
|
||||
|
||||
## Goal
|
||||
Create the task definition classes and registry for the pipeline orchestrator. This is Phase 1 — define what tasks exist and their metadata.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Create `src/backend/services/pipeline_tasks.py`
|
||||
|
||||
Implement:
|
||||
|
||||
1. `PipelineTask` dataclass:
|
||||
- `name: str` — unique task identifier
|
||||
- `description: str` — human-readable name
|
||||
- `func: Callable` — async function to execute
|
||||
- `depends_on: list[str]` — task names that must complete first
|
||||
- `timeout: int` — max execution time in seconds
|
||||
- `retry_count: int` — number of retries on failure
|
||||
|
||||
2. `TaskRegistry` class:
|
||||
- `register(task: PipelineTask)` — add task to registry
|
||||
- `get(task_name: str) -> PipelineTask` — lookup task
|
||||
- `get_all() -> list[PipelineTask]` — list all registered tasks
|
||||
- `get_dependencies(task_name: str) -> list[str]` — get task dependencies
|
||||
- `get_ready_tasks( completed: set[str]) -> list[str]` — find tasks whose deps are met
|
||||
|
||||
3. Register built-in tasks:
|
||||
- `news_ingestion` — runs news data ingestion
|
||||
- `financials_ingestion` — runs financials data ingestion
|
||||
- `sector_rotation` — runs sector rotation analysis
|
||||
- `price_update` — runs price data update
|
||||
- `sentiment_analysis` — runs sentiment analysis
|
||||
|
||||
### Constraints
|
||||
- File under 200 lines
|
||||
- Use existing async patterns
|
||||
- No real DB calls in task definitions
|
||||
|
||||
## Acceptance Criteria
|
||||
1. `TaskRegistry` correctly tracks tasks and dependencies
|
||||
2. `get_ready_tasks()` returns correct task order
|
||||
3. All 5 built-in tasks are registered
|
||||
4. File is under 200 lines
|
||||
|
||||
## Files to Create
|
||||
- `src/backend/services/pipeline_tasks.py`
|
||||
|
||||
## Files to Read First
|
||||
- `src/backend/services/news_ingestion_service.py` — existing task functions
|
||||
- `src/backend/services/financials_ingestion_service.py` — existing task functions
|
||||
- `src/backend/services/rotation_service.py` — existing task functions
|
||||
Reference in New Issue
Block a user