pi_portal.modules.tasks.queue.bases.router_base.TaskRouterBase

class pi_portal.modules.tasks.queue.bases.router_base.TaskRouterBase(*args: Any, **kwargs: Dict[str, Any])[source]

Bases: object

The task router for Pi Portal.

Return type:

MetaPostInitCaller

abstract __init__(log: Logger) None[source]

Instantiate a queue implementation for each routing label.

Parameters:

log (Logger) – A logger instance to pass to each queue.

ack(task: TypeGenericTask) None[source]

Ack a task from the corresponding queue.

Parameters:

task (TypeGenericTask) – The task to ack.

get(routing_label: RoutingLabel) TypeGenericTask[source]

Return the typed task object from the selected queue.

Parameters:

routing_label (RoutingLabel) – The queue to select.

Returns:

The dequeued task.

Return type:

TypeGenericTask

maintenance(routing_label: RoutingLabel) None[source]

Perform queue maintenance tasks on the selected queue.

Parameters:

routing_label (RoutingLabel) – The queue to select.

metrics(routing_label: RoutingLabel) QueueMetrics[source]

Extract metrics from the selected queue.

Parameters:

routing_label (RoutingLabel) – The queue to select.

Returns:

A collection of metrics for the selected task queue.

Return type:

QueueMetrics

put(task: TypeGenericTask) None[source]

Enqueue a task to the corresponding queue.

Parameters:

task (TypeGenericTask) – the task to schedule.

retry(task: TypeGenericTask) None[source]

Retry a failed task on the corresponding queue.

Parameters:

task (TypeGenericTask) – the task to schedule.