codex/dev
mula.liu 2026-04-09 21:15:18 +08:00
parent 27fa9317c5
commit d7507e811b
1 changed files with 10 additions and 2 deletions

View File

@ -340,7 +340,8 @@ class AsyncTranscriptionService:
error_message = task_data.get('error_message') or None error_message = task_data.get('error_message') or None
updated_at = task_data.get('updated_at') or updated_at updated_at = task_data.get('updated_at') or updated_at
else: else:
cached_status = self.redis_client.hgetall(status_cache_key) cached_status_raw = self.redis_client.hgetall(status_cache_key)
cached_status = self._normalize_redis_mapping(cached_status_raw) if cached_status_raw else {}
if cached_status and cached_status.get('status') in {'pending', 'processing'}: if cached_status and cached_status.get('status') in {'pending', 'processing'}:
current_status = cached_status.get('status', 'pending') current_status = cached_status.get('status', 'pending')
progress = int(cached_status.get('progress') or 0) progress = int(cached_status.get('progress') or 0)
@ -433,10 +434,17 @@ class AsyncTranscriptionService:
task_data = self._normalize_redis_mapping(task_data_raw) task_data = self._normalize_redis_mapping(task_data_raw)
if task_data.get('paraformer_task_id'): if task_data.get('paraformer_task_id'):
return task_data return task_data
if str(task_data.get('status') or '').lower() in {'pending', 'processing', 'completed', 'failed'}:
return task_data
# 如果Redis没有从数据库回源 # 如果Redis没有从数据库回源
task_data_from_db = self._get_task_from_db(business_task_id) task_data_from_db = self._get_task_from_db(business_task_id)
if not task_data_from_db or not task_data_from_db.get('paraformer_task_id'): if not task_data_from_db:
raise Exception("Task not found in DB")
if (
not task_data_from_db.get('paraformer_task_id')
and str(task_data_from_db.get('status') or '').lower() not in {'pending', 'processing', 'completed', 'failed'}
):
raise Exception("Task not found in DB or paraformer_task_id is missing") raise Exception("Task not found in DB or paraformer_task_id is missing")
# 将从DB获取的数据缓存回Redis # 将从DB获取的数据缓存回Redis