From eb03e6585af3b99e0e7cb09096589ec95f39e10b Mon Sep 17 00:00:00 2001 From: Thomas Steinacher Date: Wed, 17 Jul 2024 12:39:33 +0200 Subject: [PATCH] Add get_sizes_for_queues_and_states --- tasktiger/tasktiger.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tasktiger/tasktiger.py b/tasktiger/tasktiger.py index 52da89b..8f8409d 100644 --- a/tasktiger/tasktiger.py +++ b/tasktiger/tasktiger.py @@ -489,6 +489,23 @@ def get_queue_sizes(self, queue: str) -> Dict[str, int]: results = pipeline.execute() return dict(zip(states, results)) + def get_sizes_for_queues_and_states( + self, queues_and_states: List[Tuple[str, str]] + ) -> List[int]: + """ + Get the sizes for the specific queues and states. + + queues_and_states: List of tuples (queue_name, state). + + Returns a list of queue sizes in the order of the passed + queues_and_states. + """ + pipeline = self.connection.pipeline() + for queue, state in queues_and_states: + pipeline.zcard(self._key(state, queue)) + results = pipeline.execute() + return results + def get_total_queue_size(self, queue: str) -> int: """Get total queue size for QUEUED, SCHEDULED, and ACTIVE states."""