Minor refactoring of the paging logic.

main
Vincent Driessen 12 years ago
parent e3075ea6be
commit 2fb6e5ca1a

@ -74,20 +74,28 @@ class Queue(object):
return None return None
return job return job
def get_jobs_page(self, offset, limit): def get_job_ids(self, start=0, limit=-1):
"""Returns a paginated list of jobs in the queue.""" """Returns a slice of job IDs in the queue."""
job_ids = self.connection.lrange(self.key, offset, offset+limit) if limit >= 0:
end = start + limit
else:
end = limit
return self.connection.lrange(self.key, start, end)
def get_jobs(self, start=0, limit=-1):
"""Returns a slice of jobs in the queue."""
job_ids = self.get_job_ids(start, limit)
return compact([self.safe_fetch_job(job_id) for job_id in job_ids]) return compact([self.safe_fetch_job(job_id) for job_id in job_ids])
@property @property
def job_ids(self): def job_ids(self):
"""Returns a list of all job IDS in the queue.""" """Returns a list of all job IDS in the queue."""
return self.connection.lrange(self.key, 0, -1) return self.get_jobs_ids()
@property @property
def jobs(self): def jobs(self):
"""Returns a list of all (valid) jobs in the queue.""" """Returns a list of all (valid) jobs in the queue."""
return compact([self.safe_fetch_job(job_id) for job_id in self.job_ids]) return self.get_jobs()
@property @property
def count(self): def count(self):

Loading…
Cancel
Save