3.2 KiB
Jobs API
Endpoints for managing background jobs.
Get Job Status
Endpoint: GET /api/job_status.php
Get the current status of a background job.
Parameters
job_id(required): Job ID
Response
{
"status": "success",
"job_status": "completed",
"job": {
"id": 456,
"job_type": "hotspot_analysis",
"status": "completed",
"progress": 100,
"params": { ... },
"result": {
"dataset_id": 789,
"dataset_name": "Hot Spot Results",
"table_name": "spatial_data_789"
},
"created_at": "2024-01-01T00:00:00Z",
"started_at": "2024-01-01T00:01:00Z",
"finished_at": "2024-01-01T00:05:00Z"
}
}
Job Statuses
queued: Job is waiting to be processedrunning: Job is currently being processedcompleted: Job completed successfullyfailed: Job failed with an error
Example
curl -X GET "https://example.com/api/job_status.php?job_id=456" \
-H "Cookie: PHPSESSID=..."
Cancel Job
Endpoint: POST /api/job_cancel.php
Cancel a queued or running job.
Request Body
{
"job_id": 456
}
Response
{
"status": "success",
"message": "Job cancelled successfully"
}
Notes
- Only queued or running jobs can be cancelled
- Completed or failed jobs cannot be cancelled
- Users can only cancel their own jobs (admins can cancel any job)
List User Jobs
Endpoint: GET /api/jobs/status.php
List all jobs for the current user.
Parameters
status(optional): Filter by status (queued, running, completed, failed)job_type(optional): Filter by job typelimit(optional): Maximum results (default: 50)offset(optional): Result offset (default: 0)
Response
{
"status": "success",
"jobs": [
{
"id": 456,
"job_type": "hotspot_analysis",
"status": "completed",
"progress": 100,
"created_at": "2024-01-01T00:00:00Z",
"finished_at": "2024-01-01T00:05:00Z"
}
],
"total": 10,
"limit": 50,
"offset": 0
}
Example
curl -X GET "https://example.com/api/jobs/status.php?status=running&limit=10" \
-H "Cookie: PHPSESSID=..."
Job Result Structure
Completed jobs include a result field with job-specific information:
Hot Spot Analysis Result
{
"dataset_id": 789,
"dataset_name": "Hot Spot Results",
"table_name": "spatial_data_789",
"row_count": 1000,
"storage_type": "table"
}
Outlier Analysis Result
{
"dataset_id": 790,
"dataset_name": "Outlier Results",
"table_name": "spatial_data_790",
"row_count": 50,
"outlier_count": 50
}
Nearest Analysis Result
{
"dataset_id": 791,
"dataset_name": "Nearest Results",
"table_name": "spatial_data_791",
"row_count": 500,
"source_dataset_id": 123,
"target_dataset_id": 124
}
Error Handling
Failed jobs include an error_message field:
{
"status": "failed",
"error_message": "Dataset not found",
"job": {
"id": 456,
"status": "failed",
"error_message": "Dataset not found"
}
}
PostGIS
Mobile
QGIS
MapBender
GeoServer
GeoNode
GeoNetwork
Novella
Solutions