Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
GitHub Actions
commited on
Commit
·
57a5b90
1
Parent(s):
67272fb
Sync from GitHub repo
Browse files
app.py
CHANGED
|
@@ -117,7 +117,8 @@ TTS_CACHE_SIZE = int(os.getenv("TTS_CACHE_SIZE", "10"))
|
|
| 117 |
CACHE_AUDIO_SUBDIR = "cache"
|
| 118 |
tts_cache = {} # sentence -> {model_a, model_b, audio_a, audio_b, created_at}
|
| 119 |
tts_cache_lock = threading.Lock()
|
| 120 |
-
|
|
|
|
| 121 |
all_harvard_sentences = [] # Keep the full list available
|
| 122 |
|
| 123 |
# Create temp directories
|
|
@@ -535,8 +536,21 @@ def generate_tts():
|
|
| 535 |
}
|
| 536 |
app.tts_sessions[session_id] = session_data_from_cache
|
| 537 |
|
| 538 |
-
# Trigger background
|
| 539 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 540 |
|
| 541 |
if cache_hit and session_data_from_cache:
|
| 542 |
# Return response using cached data
|
|
|
|
| 117 |
CACHE_AUDIO_SUBDIR = "cache"
|
| 118 |
tts_cache = {} # sentence -> {model_a, model_b, audio_a, audio_b, created_at}
|
| 119 |
tts_cache_lock = threading.Lock()
|
| 120 |
+
# Increased max_workers to 8 for concurrent generation/refill
|
| 121 |
+
cache_executor = ThreadPoolExecutor(max_workers=8, thread_name_prefix='CacheReplacer')
|
| 122 |
all_harvard_sentences = [] # Keep the full list available
|
| 123 |
|
| 124 |
# Create temp directories
|
|
|
|
| 536 |
}
|
| 537 |
app.tts_sessions[session_id] = session_data_from_cache
|
| 538 |
|
| 539 |
+
# --- Trigger background tasks to refill the cache ---
|
| 540 |
+
# Calculate how many slots need refilling
|
| 541 |
+
current_cache_size = len(tts_cache) # Size *before* adding potentially new items
|
| 542 |
+
needed_refills = TTS_CACHE_SIZE - current_cache_size
|
| 543 |
+
# Limit concurrent refills to 8 or the actual need
|
| 544 |
+
refills_to_submit = min(needed_refills, 8)
|
| 545 |
+
|
| 546 |
+
if refills_to_submit > 0:
|
| 547 |
+
app.logger.info(f"Cache hit: Submitting {refills_to_submit} background task(s) to refill cache (current size: {current_cache_size}, target: {TTS_CACHE_SIZE}).")
|
| 548 |
+
for _ in range(refills_to_submit):
|
| 549 |
+
# Pass None to signal replacement selection within the task
|
| 550 |
+
cache_executor.submit(_generate_cache_entry_task, None)
|
| 551 |
+
else:
|
| 552 |
+
app.logger.info(f"Cache hit: Cache is already full or at target size ({current_cache_size}/{TTS_CACHE_SIZE}). No refill tasks submitted.")
|
| 553 |
+
# --- End Refill Trigger ---
|
| 554 |
|
| 555 |
if cache_hit and session_data_from_cache:
|
| 556 |
# Return response using cached data
|