Kalpokoch commited on
Commit
98efe61
·
verified ·
1 Parent(s): c560b3c

Update app/app.py

Browse files
Files changed (1) hide show
  1. app/app.py +14 -15
app/app.py CHANGED
@@ -63,25 +63,24 @@ class RequestQueue:
63
 
64
  queued_request = QueuedRequest(request_id, question, datetime.now())
65
 
66
- # If nothing is processing and queue is empty, this request can be processed immediately
67
- if not self.processing and not self.queue:
68
- self.processing = queued_request
69
- queued_request.status = "processing"
70
- return {
71
- "status": "processing",
72
- "message": "Your request is being processed now.",
73
- "queue_position": 0,
74
- "estimated_wait_time": "0-2 minutes"
75
- }
76
-
77
- # Add to queue
78
  self.queue.append(queued_request)
79
- position = len(self.queue)
80
- estimated_wait = f"{position * 2}-{(position + 1) * 2} minutes"
 
 
 
 
 
 
 
 
 
 
81
 
82
  return {
83
  "status": "queued",
84
- "message": f"Using free CPU tier - can only process one request at a time. Your request is #{position} in queue and will be processed after current requests are completed.",
85
  "queue_position": position,
86
  "estimated_wait_time": estimated_wait
87
  }
 
63
 
64
  queued_request = QueuedRequest(request_id, question, datetime.now())
65
 
66
+ # Always enqueue; the background worker is the single executor
 
 
 
 
 
 
 
 
 
 
 
67
  self.queue.append(queued_request)
68
+ position = len(self.queue) # 1-based position in queue
69
+
70
+ # Compute an ETA that reflects whether something is currently processing
71
+ # ahead_of_you = (1 if a job is currently processing else 0) + (position - 1 already queued ahead)
72
+ ahead_of_you = (1 if self.processing else 0) + (position - 1)
73
+ # Each slot ~2 minutes based on your heuristic
74
+ estimated_wait = f"{ahead_of_you * 2}-{(ahead_of_you + 1) * 2} minutes"
75
+
76
+ message = (
77
+ "Using free CPU tier - can only process one request at a time. "
78
+ f"Your request is #{position} in queue and will be processed after current requests are completed."
79
+ )
80
 
81
  return {
82
  "status": "queued",
83
+ "message": message,
84
  "queue_position": position,
85
  "estimated_wait_time": estimated_wait
86
  }