pi_portal.modules.tasks.queue.bases.queue_base.QueueBase

class pi_portal.modules.tasks.queue.bases.queue_base.QueueBase(log: Logger, routing_label: RoutingLabel)[source]

Bases: ABC

An abstract queue base class to wrap around implementations.

__init__(log: Logger, routing_label: RoutingLabel) None[source]
Parameters:
  • log (Logger) – A logger instance.

  • routing_label (RoutingLabel) – The routing label of this queue.

ack(task: TypeGenericTask) None[source]

Ack a task from the queue.

Parameters:

task (TypeGenericTask) – the task to ack.

get() TypeGenericTask[source]

Return the typed task object.

Returns:

The dequeued task object.

Return type:

TypeGenericTask

maintenance() None[source]

Perform queue maintenance tasks.

metrics() QueueMetrics[source]

Extract queue metrics.

Returns:

A collection of metrics for the task queue.

Return type:

QueueMetrics

put(task: TypeGenericTask) None[source]

Enqueue a task.

Parameters:

task (TypeGenericTask) – the task to schedule.

retry(task: TypeGenericTask) None[source]

Retry a failed task.

Parameters:

task (TypeGenericTask) – the task to retry.