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):
@ -118,7 +126,7 @@ class Queue(object):
"""Pushes a job ID on the corresponding Redis queue.""" """Pushes a job ID on the corresponding Redis queue."""
self.connection.rpush(self.key, job_id) self.connection.rpush(self.key, job_id)
def enqueue_call(self, func, args=None, kwargs=None, timeout=None, result_ttl=None): #noqa def enqueue_call(self, func, args=None, kwargs=None, timeout=None, result_ttl=None): # noqa
"""Creates a job to represent the delayed function call and enqueues """Creates a job to represent the delayed function call and enqueues
it. it.

Loading…
Cancel
Save