cfa911 commited on
Commit
70e30f8
·
1 Parent(s): 47ce483

Simulated delay

Browse files
Files changed (1) hide show
  1. app.py +23 -8
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 and return results if ready"""
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
- if job["status"] != "completed":
60
- return {"status": "processing"}
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
- return {
63
- "status": "completed",
64
- "result": job["result"],
65
- "request": job["request"]
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"}