Initial public release
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Queue Architecture
|
||||
|
||||
## Decision
|
||||
|
||||
Use Redis + RQ for V1 background jobs.
|
||||
|
||||
## Why
|
||||
|
||||
- Simple to run locally.
|
||||
- Easy to understand.
|
||||
- Good enough for raster processing and AI inference jobs.
|
||||
- Avoids Celery complexity in the first implementation.
|
||||
|
||||
## Queue names
|
||||
|
||||
- `default` for lightweight jobs.
|
||||
- `processing` for raster/vector processing.
|
||||
- `ai` for detection and segmentation.
|
||||
- `exports` for GeoJSON/report exports.
|
||||
|
||||
## Job lifecycle
|
||||
|
||||
1. API validates request.
|
||||
2. API creates `analysis_run` with status `queued`.
|
||||
3. API enqueues job with `analysis_run_id`.
|
||||
4. Worker sets status `running`.
|
||||
5. Worker writes artifacts and metrics.
|
||||
6. Worker sets status `completed` or `failed`.
|
||||
7. Frontend polls analysis run endpoint.
|
||||
|
||||
## Failure handling
|
||||
|
||||
Failures must store:
|
||||
|
||||
- error code,
|
||||
- error message,
|
||||
- stack trace in internal logs only,
|
||||
- user-safe explanation.
|
||||
|
||||
## No silent failures
|
||||
|
||||
A failed job must be visible in the UI and queryable through the API.
|
||||
Reference in New Issue
Block a user