Skip to content

Commit e46726a

Browse files
committed
Add Queue().list_raw_jobs() method
1 parent 870a87d commit e46726a

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

mrq/queue.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,23 +117,31 @@ def list_job_ids(self, skip=0, limit=20):
117117
if self.is_raw:
118118
raise Exception("Can't list job ids from a raw queue")
119119

120-
# ZSET
120+
return self.unserialize_job_ids(self._get_queue_content(skip, limit))
121+
122+
def list_raw_jobs(self, skip=0, limit=20):
123+
124+
if not self.is_raw:
125+
raise Exception("Queue is not raw")
126+
127+
return self._get_queue_content(skip, limit)
128+
129+
def _get_queue_content(self, skip, limit):
121130
if self.is_sorted:
122-
return self.unserialize_job_ids(context.connections.redis.zrange(
131+
return context.connections.redis.zrange(
123132
self.redis_key,
124133
skip,
125-
skip + limit - 1))
134+
skip + limit - 1)
126135
# SET
127136
elif self.is_set:
128-
return self.unserialize_job_ids(
129-
context.connections.redis.srandmember(self.redis_key, limit)
130-
)
137+
return context.connections.redis.srandmember(self.redis_key, limit)
138+
131139
# LIST
132140
else:
133-
return self.unserialize_job_ids(context.connections.redis.lrange(
141+
return context.connections.redis.lrange(
134142
self.redis_key,
135143
skip,
136-
skip + limit - 1))
144+
skip + limit - 1)
137145

138146
def get_sorted_graph(
139147
self,

tests/test_raw.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ def test_raw_sorted(worker, p_queue, p_pushback, p_timed, p_flags):
4949

5050
if p_pushback:
5151
assert Queue(p_queue).size() == 3
52+
assert set(Queue(p_queue).list_raw_jobs()) == set(["bbb", "ccc", "aaa"])
5253
else:
5354
assert Queue(p_queue).size() == 2
55+
assert set(Queue(p_queue).list_raw_jobs()) == set(["bbb", "ccc"])
5456

5557
# The second one should not yet even exist in mrq_jobs
5658
assert jobs_collection.count() == 1

0 commit comments

Comments
 (0)