test-jv / main.py
Arghya Ghosh
Rename app.py to main.py
ae8a7b0 verified
from fastapi import FastAPI, Request
from redis import Redis
from rq import Queue
from runner import run_java
app = FastAPI(title="Safe Java Runner")
# Connect to Redis
redis_conn = Redis(host="localhost", port=6379)
queue = Queue(connection=redis_conn)
@app.post("/run")
async def submit_code(request: Request):
data = await request.json()
code = data.get("code", "")
if not code.strip():
return {"status": "error", "message": "No code provided"}
job = queue.enqueue(run_java, code)
return {"status": "queued", "job_id": job.id}
@app.get("/result/{job_id}")
async def get_result(job_id: str):
from rq.job import Job
try:
job = Job.fetch(job_id, connection=redis_conn)
except Exception:
return {"status": "error", "message": "Job not found"}
if job.is_finished:
return {"status": "finished", "result": job.result}
elif job.is_failed:
return {"status": "failed", "error": str(job.exc_info)}
else:
return {"status": "running"}