pi_portal.modules.tasks.queue.persist_queue_router.TaskRouter

class pi_portal.modules.tasks.queue.persist_queue_router.TaskRouter(*args: Any, **kwargs: Dict[str, Any])[source]

Bases: TaskRouterBase

A persist-queue back task router.

Parameters:

log – A logger instance.

Return type:

MetaPostInitCaller

__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

Ack a task from the corresponding queue.

Parameters:

task (TypeGenericTask) – The task to ack.

get(routing_label: RoutingLabel) TypeGenericTask

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

Perform queue maintenance tasks on the selected queue.

Parameters:

routing_label (RoutingLabel) – The queue to select.

metrics(routing_label: RoutingLabel) QueueMetrics

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

Enqueue a task to the corresponding queue.

Parameters:

task (TypeGenericTask) – the task to schedule.

retry(task: TypeGenericTask) None

Retry a failed task on the corresponding queue.

Parameters:

task (TypeGenericTask) – the task to schedule.