definitions
PoolStatus
from dara.core.internal.pool.definitions import PoolStatus
class PoolStatus(Enum)
CREATED
Initial state
RUNNING
Active state
CLOSED
Closed, pool not accepting new jobs but still handling existing ones
STOPPED
Completely stopped, all workers shut down
ERROR
Error state
WorkerStatus
from dara.core.internal.pool.definitions import WorkerStatus
class WorkerStatus(Enum)
CREATED
Initial state
IDLE
Worker initialized and waiting for jobs
WORKING
Worker executing a job
TaskDefinition
from dara.core.internal.pool.definitions import TaskDefinition
class TaskDefinition()
Describes a task submitted to the pool
Attributes
- uid: str
- event: Event
- result: Any
- payload: TaskPayload
- worker_id: Optional[int]
- started_at: Optional[datetime]
Methods
started_at
TODO: can be used for task timeout or metrics/visibility
__await__
def __await__()
Await the underlying event, then return or raise the result
WorkerTask
from dara.core.internal.pool.definitions import WorkerTask
class WorkerTask(TypedDict)
Sent to workers as a definition of a task to do
Attributes
- task_uid: str
- payload: SharedMemoryPointer
payload
Pointer to shared memory storing TaskPayload
Initialization
Worker_pid, sent when a worker is initialized and ready to take tasks
Acknowledgement
from dara.core.internal.pool.definitions import Acknowledgement
class Acknowledgement(TypedDict)
Sent when a worker accepts a task
Attributes
- task_uid: str
- worker_pid: int
Result
from dara.core.internal.pool.definitions import Result
class Result(TypedDict)
Task result sent when a worker finishes processing a task
Attributes
- task_uid: str
- result: SharedMemoryPointer
result
Pointer to shared memory storing result
Problem
from dara.core.internal.pool.definitions import Problem
class Problem(TypedDict)
Sent when a worker encounters an issue processing a task
Attributes
- task_uid: Optional[str]
- error: SubprocessException
Log
from dara.core.internal.pool.definitions import Log
class Log(TypedDict)
Sent when a task emits a stdout message
Attributes
- task_uid: Optional[str]
- log: str
Progress
from dara.core.internal.pool.definitions import Progress
class Progress(TypedDict)
Task progress update message
Attributes
- task_uid: str
- progress: float
- message: str
WorkerMessage
Union of possible messages sent from worker processes