| import requests |
| from datetime import datetime |
|
|
| def execute_job(job: dict) -> dict: |
| url = job.get("target_url") |
| method = job.get("method", "GET").upper() |
| headers = job.get("headers", {}) or {} |
| body = job.get("body", None) |
| timeout = job.get("timeout_seconds", 30) |
|
|
| start_time = datetime.utcnow() |
| try: |
| if method == "POST": |
| response = requests.post(url, headers=headers, json=body, timeout=timeout) |
| elif method == "PUT": |
| response = requests.put(url, headers=headers, json=body, timeout=timeout) |
| elif method == "DELETE": |
| response = requests.delete(url, headers=headers, timeout=timeout) |
| else: |
| response = requests.get(url, headers=headers, timeout=timeout) |
| |
| elapsed = (datetime.utcnow() - start_time).total_seconds() |
| return { |
| "success": response.status_code < 400, |
| "status_code": response.status_code, |
| "response_time": elapsed, |
| "error": None |
| } |
| except Exception as e: |
| elapsed = (datetime.utcnow() - start_time).total_seconds() |
| return { |
| "success": False, |
| "status_code": 0, |
| "response_time": elapsed, |
| "error": str(e) |
| } |
| |