Spaces:
Sleeping
Sleeping
| 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) | |
| 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} | |
| 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"} | |