Do not call pipeline.execute() if pipeline is given as argument

main
Javier Lopez 9 years ago
parent a2d0e4f933
commit d3d9a20680

@ -265,21 +265,21 @@ class Queue(object):
If Queue is instantiated with async=False, job is executed immediately. If Queue is instantiated with async=False, job is executed immediately.
""" """
if not pipeline: pipe = pipeline if pipeline is not None else self.connection._pipeline()
pipeline = self.connection._pipeline()
# Add Queue key set # Add Queue key set
self.connection.sadd(self.redis_queues_keys, self.key) pipe.sadd(self.redis_queues_keys, self.key)
job.set_status(JobStatus.QUEUED, pipeline=pipeline) job.set_status(JobStatus.QUEUED, pipeline=pipe)
job.origin = self.name job.origin = self.name
job.enqueued_at = utcnow() job.enqueued_at = utcnow()
if job.timeout is None: if job.timeout is None:
job.timeout = self.DEFAULT_TIMEOUT job.timeout = self.DEFAULT_TIMEOUT
job.save(pipeline=pipeline) job.save(pipeline=pipe)
pipeline.execute() if pipeline is None:
pipe.execute()
if self._async: if self._async:
self.push_job_id(job.id, at_front=at_front) self.push_job_id(job.id, at_front=at_front)
@ -291,8 +291,6 @@ class Queue(object):
# TODO: can probably be pipelined # TODO: can probably be pipelined
from .registry import DeferredJobRegistry from .registry import DeferredJobRegistry
while True: while True:
job_id = as_text(self.connection.spop(job.dependents_key)) job_id = as_text(self.connection.spop(job.dependents_key))
if job_id is None: if job_id is None:
@ -306,6 +304,7 @@ class Queue(object):
else: else:
queue = Queue(name=dependent.origin, connection=self.connection) queue = Queue(name=dependent.origin, connection=self.connection)
queue.enqueue_job(dependent, pipeline=pipeline) queue.enqueue_job(dependent, pipeline=pipeline)
pipeline.execute()
def pop_job_id(self): def pop_job_id(self):
"""Pops a given job ID from this Redis queue.""" """Pops a given job ID from this Redis queue."""

Loading…
Cancel
Save