exceptions.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """Task 异常体系 —— 从 supply.jobs.task_utils 迁移"""
  2. class TaskError(Exception):
  3. """任务异常基类"""
  4. def __init__(self, message: str, retryable: bool = False):
  5. super().__init__(message)
  6. self.retryable = retryable
  7. class TaskValidationError(TaskError):
  8. """任务参数校验失败"""
  9. def __init__(self, message: str):
  10. super().__init__(message, retryable=False)
  11. class TaskTimeoutError(TaskError):
  12. """任务执行超时"""
  13. def __init__(self, task_name: str, timeout: int):
  14. super().__init__(
  15. f"任务 '{task_name}' 执行超时({timeout}s)", retryable=True
  16. )
  17. class TaskConcurrencyError(TaskError):
  18. """任务并发限制"""
  19. def __init__(self, task_name: str, max_concurrent: int):
  20. super().__init__(
  21. f"任务 '{task_name}' 并发数已达上限({max_concurrent})",
  22. retryable=True,
  23. )
  24. class TaskLockError(TaskError):
  25. """任务锁获取失败(被其他实例持有)"""
  26. def __init__(self, task_name: str):
  27. super().__init__(
  28. f"任务 '{task_name}' 锁已被其他实例持有", retryable=True
  29. )