hfcron / backend /worker /executor.py
Ajitdoval's picture
Create backend/worker/executor.py
253710f verified
Raw
History Blame Contribute Delete
1.28 kB
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)
}