*: Improve MonitoredTasks' error capture
This commit is contained in:
		@ -2,6 +2,7 @@
 | 
			
		||||
from dataclasses import dataclass, field
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from enum import Enum
 | 
			
		||||
from traceback import format_tb
 | 
			
		||||
from typing import Any, Dict, List, Optional
 | 
			
		||||
 | 
			
		||||
from celery import Task
 | 
			
		||||
@ -25,11 +26,15 @@ class TaskResult:
 | 
			
		||||
 | 
			
		||||
    messages: List[str] = field(default_factory=list)
 | 
			
		||||
 | 
			
		||||
    error: Optional[Exception] = field(default=None)
 | 
			
		||||
 | 
			
		||||
    # Optional UID used in cache for tasks that run in different instances
 | 
			
		||||
    uid: Optional[str] = field(default=None)
 | 
			
		||||
 | 
			
		||||
    def with_error(self, exc: Exception) -> "TaskResult":
 | 
			
		||||
        """Since errors might not always be pickle-able, set the traceback"""
 | 
			
		||||
        self.messages.extend(format_tb(exc.__traceback__))
 | 
			
		||||
        self.messages.append(str(exc))
 | 
			
		||||
        return self
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@dataclass
 | 
			
		||||
class TaskInfo:
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user