Always call job.save even on synchronous queues so get_current_job doesn't fail

This commit is contained in:
Selwin Ong 2012-11-25 17:15:38 +07:00 committed by Vincent Driessen
parent 10237ddcb4
commit f498de57b6
2 changed files with 9 additions and 1 deletions

View File

@ -172,9 +172,9 @@ class Queue(object):
job.timeout = timeout # _timeout_in_seconds(timeout)
else:
job.timeout = 180 # default
job.save()
if self._async:
job.save()
self.push_job_id(job.id)
else:
job.perform()

View File

@ -6,6 +6,7 @@ from tests.helpers import strip_milliseconds
from cPickle import loads
from rq.job import Job, get_current_job
from rq.exceptions import NoSuchJobError, UnpickleError
from rq.queue import Queue
class TestJob(RQTestCase):
@ -211,3 +212,10 @@ class TestJob(RQTestCase):
id = job.perform()
self.assertEqual(job.id, id)
self.assertEqual(job.func, access_self)
# Ensure that get_current_job also works from within synchronous jobs
queue = Queue(async=False)
job = queue.enqueue(access_self)
id = job.perform()
self.assertEqual(job.id, id)
self.assertEqual(job.func, access_self)