pi_portal.modules.tasks.task.bases.task_base.TaskBase

class pi_portal.modules.tasks.task.bases.task_base.TaskBase(args: TypeTaskArguments_co, retry_after: int = 0, routing_label: RoutingLabel | None = None)[source]

Bases: TaskFields[TypeTaskResult], Generic[TypeTaskArguments_co, TypeTaskResult]

A processable unit of work.

__init__(args: TypeTaskArguments_co, retry_after: int = 0, routing_label: RoutingLabel | None = None) None[source]
Parameters:
  • args (TypeTaskArguments_co) – The arguments used by this task instance.

  • retry_after (int) – A positive value in seconds will retry a failed task.

  • routing_label (RoutingLabel | None) – Override the routing matrix for this task.

args: TypeTaskArguments_co

The arguments used by this task instance.

completed: datetime | None

The datetime of completion, or None if not complete.

created: datetime

The datetime of task creation.

id: Any

The id (assigned by the queue) for this task.

ok: bool | None

Set to None before job completion, afterward a boolean job status.

on_failure: List[TypeGenericTask]

An array of subsequent jobs to be performed on task failure.

on_success: List[TypeGenericTask]

An array of subsequent jobs to be performed on task completion.

result: TaskResult[TypeTaskResult]

Set to None before job completion, afterward returned results.

retry_after: int

A positive value in seconds ensures this task will be retried on failure.

routing_label: RoutingLabel

The routing label for this task.

scheduled: datetime | None

Set to None before job completion, afterward returned results.

type: TaskType = 'BASE'

The type of task being represented.