Skip to content

Commit 25bf497

Browse files
authored
Fix task status display (#519)
* 修复任务状态展示
1 parent f1726f5 commit 25bf497

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

runtime/datamate-python/app/module/cleaning/service/cleaning_task_scheduler.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,16 @@ async def execute_task(self, db: AsyncSession, task_id: str, retry_count: int) -
4343
task.started_at = datetime.now()
4444
task.retry_count = retry_count
4545

46-
await self.task_repo.update_task(db, task)
4746
submitted = await self.runtime_client.submit_task(task_id, retry_count)
4847

4948
if submitted:
49+
await self.task_repo.update_task(db, task)
5050
self._polling_task_ids.add(task_id)
51+
return submitted
52+
53+
task.status = CleaningTaskStatus.FAILED
54+
task.finished_at = datetime.now()
55+
await self.task_repo.update_task(db, task)
5156

5257
return submitted
5358

runtime/datamate-python/app/module/cleaning/service/cleaning_task_service.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import re
44
import shutil
55
import uuid
6+
from datetime import datetime
67
from pathlib import Path
78
from typing import List, Dict, Any, Set
89

@@ -518,9 +519,21 @@ async def execute_task(self, db: AsyncSession, task_id: str) -> bool:
518519
await self.scan_dataset(db, task_id, task.src_dataset_id, succeed_set)
519520
await self.result_repo.delete_by_instance_id(db, task_id, "FAILED")
520521

521-
return await self.scheduler.execute_task(
522-
db, task_id, (task.retry_count or 0) + 1
523-
)
522+
try:
523+
return await self.scheduler.execute_task(
524+
db, task_id, (task.retry_count or 0) + 1
525+
)
526+
except Exception as e:
527+
logger.error(
528+
f"execute_task failed, task_id={task_id}, retry_count={(task.retry_count or 0) + 1}: {e}"
529+
)
530+
531+
task = CleaningTaskDto()
532+
task.id = task_id
533+
task.status = CleaningTaskStatus.FAILED
534+
task.finished_at = datetime.now()
535+
await self.task_repo.update_task(db, task)
536+
return False
524537

525538
async def stop_task(self, db: AsyncSession, task_id: str) -> bool:
526539
"""Stop task"""

0 commit comments

Comments
 (0)