cfa911
commited on
Commit
·
70e30f8
1
Parent(s):
47ce483
Simulated delay
Browse files
app.py
CHANGED
@@ -50,17 +50,32 @@ async def create_job(request: PostRequest):
|
|
50 |
|
51 |
@app.get("/loading")
|
52 |
async def get_results(id: str):
|
53 |
-
"""Check job status
|
54 |
if id not in jobs_db:
|
55 |
raise HTTPException(status_code=404, detail="Job not found")
|
56 |
|
57 |
job = jobs_db[id]
|
58 |
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
50 |
|
51 |
@app.get("/loading")
|
52 |
async def get_results(id: str):
|
53 |
+
"""Check job status with simulated processing delay"""
|
54 |
if id not in jobs_db:
|
55 |
raise HTTPException(status_code=404, detail="Job not found")
|
56 |
|
57 |
job = jobs_db[id]
|
58 |
|
59 |
+
# Simulate variable processing time (5-25 seconds)
|
60 |
+
if job["status"] == "processing":
|
61 |
+
elapsed = (datetime.now() - datetime.fromisoformat(job["created_at"])).seconds
|
62 |
+
if elapsed < 5: # Minimum processing time
|
63 |
+
await asyncio.sleep(2) # Artificial delay
|
64 |
+
return {"status": "processing"}
|
65 |
+
|
66 |
+
# Mark as completed after random time (for demo)
|
67 |
+
if elapsed > 15 or random.random() > 0.7: # 30% chance after 15s
|
68 |
+
job["status"] = "completed"
|
69 |
+
job["result"] = {
|
70 |
+
"processed_data": f"Result for {job['request']['query']}",
|
71 |
+
"completion_time": elapsed
|
72 |
+
}
|
73 |
|
74 |
+
if job["status"] == "completed":
|
75 |
+
return {
|
76 |
+
"status": "completed",
|
77 |
+
"result": job["result"],
|
78 |
+
"request": job["request"]
|
79 |
+
}
|
80 |
+
|
81 |
+
return {"status": "processing"}
|