Spaces:
Sleeping
Sleeping
Ron Au
commited on
Commit
·
7cd74ca
1
Parent(s):
568065a
feat(polling): Avoid redundant polling before ETA
Browse files- app.py +1 -0
- static/js/index.js +4 -1
app.py
CHANGED
@@ -113,6 +113,7 @@ def create_task(background_tasks: BackgroundTasks, new_task: NewTask):
|
|
113 |
}
|
114 |
|
115 |
tasks[task_id]["initial_place_in_queue"] = get_place_in_queue(task_id)
|
|
|
116 |
|
117 |
background_tasks.add_task(process_task, task_id)
|
118 |
|
|
|
113 |
}
|
114 |
|
115 |
tasks[task_id]["initial_place_in_queue"] = get_place_in_queue(task_id)
|
116 |
+
tasks[task_id]["eta"] = calculate_eta(task_id)
|
117 |
|
118 |
background_tasks.add_task(process_task, task_id)
|
119 |
|
static/js/index.js
CHANGED
@@ -41,7 +41,10 @@ const generate = async () => {
|
|
41 |
const timer = durationTimer(durationDisplay);
|
42 |
const timerCleanup = timer().cleanup;
|
43 |
|
44 |
-
|
|
|
|
|
|
|
45 |
|
46 |
generating = false;
|
47 |
timerCleanup(completedTask);
|
|
|
41 |
const timer = durationTimer(durationDisplay);
|
42 |
const timerCleanup = timer().cleanup;
|
43 |
|
44 |
+
// Theoretically, keep client waiting only an extra half interval once task is complete
|
45 |
+
const interval = 5_000;
|
46 |
+
await new Promise((resolve) => setTimeout(resolve, task.eta * 1_000 - interval / 2));
|
47 |
+
const completedTask = await longPollTask(task, interval);
|
48 |
|
49 |
generating = false;
|
50 |
timerCleanup(completedTask);
|