summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Langner <tds333@mailbox.org>2019-02-23 07:46:26 +0100
committerSelwin Ong <selwin.ong@gmail.com>2019-02-23 14:46:26 +0800
commitabf688111401edcd659234d18631462eb6b9442b (patch)
tree118b861f3db8d80845e74f364e949d5a9b5fc841
parent1f3c9f6e59916a3548ce8407c9ee4d07a46a839f (diff)
downloadrq-abf688111401edcd659234d18631462eb6b9442b.tar.gz
Fix #1040 queue default timeout bug. (#1042)
Add test for queue default_timeout.
-rw-r--r--rq/queue.py4
-rw-r--r--tests/test_queue.py18
2 files changed, 20 insertions, 2 deletions
diff --git a/rq/queue.py b/rq/queue.py
index 2116e50..090576d 100644
--- a/rq/queue.py
+++ b/rq/queue.py
@@ -64,7 +64,7 @@ class Queue(object):
prefix = self.redis_queue_namespace_prefix
self.name = name
self._key = '{0}{1}'.format(prefix, name)
- self._default_timeout = parse_timeout(default_timeout)
+ self._default_timeout = parse_timeout(default_timeout) or self.DEFAULT_TIMEOUT
self._is_async = is_async
if 'async' in kwargs:
@@ -330,7 +330,7 @@ class Queue(object):
job.enqueued_at = utcnow()
if job.timeout is None:
- job.timeout = self.DEFAULT_TIMEOUT
+ job.timeout = self._default_timeout
job.save(pipeline=pipe)
job.cleanup(ttl=job.ttl, pipeline=pipe)
diff --git a/tests/test_queue.py b/tests/test_queue.py
index 20a051c..2a6c46e 100644
--- a/tests/test_queue.py
+++ b/tests/test_queue.py
@@ -327,6 +327,24 @@ class TestQueue(RQTestCase):
job = queue.enqueue(echo, 1, job_timeout=15)
self.assertEqual(job.timeout, 15)
+
+ def test_default_timeout(self):
+ """Timeout can be passed via job_timeout argument"""
+ queue = Queue()
+ job = queue.enqueue(echo, 1)
+ self.assertEqual(job.timeout, queue.DEFAULT_TIMEOUT)
+
+ job = Job.create(func=echo)
+ job = queue.enqueue_job(job)
+ self.assertEqual(job.timeout, queue.DEFAULT_TIMEOUT)
+
+ queue = Queue(default_timeout=15)
+ job = queue.enqueue(echo, 1)
+ self.assertEqual(job.timeout, 15)
+
+ job = Job.create(func=echo)
+ job = queue.enqueue_job(job)
+ self.assertEqual(job.timeout, 15)
def test_enqueue_explicit_args(self):
"""enqueue() works for both implicit/explicit args."""