diff options
author | Simó Albert i Beltran <sim6@bona.gent> | 2023-02-15 11:17:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-15 17:17:09 +0700 |
commit | 5798cddd0463cb2e639469689aaad26cc2bbc28f (patch) | |
tree | 1772021db3e97d3bed51666d5118fca4debe380b | |
parent | 46b5cf64c348423b253ec86a99c9bcd972478345 (diff) | |
download | rq-5798cddd0463cb2e639469689aaad26cc2bbc28f.tar.gz |
fix: queue.result_ttl=-1 (#1819)
* test: queue.result_ttl=-1
Signed-off-by: Simó Albert i Beltran <sim6@bona.gent>
* test: queue.result_ttl=0
Signed-off-by: Simó Albert i Beltran <sim6@bona.gent>
* fix: queue.result_ttl=-1
Signed-off-by: Simó Albert i Beltran <sim6@bona.gent>
---------
Signed-off-by: Simó Albert i Beltran <sim6@bona.gent>
-rw-r--r-- | rq/results.py | 5 | ||||
-rw-r--r-- | tests/test_results.py | 22 |
2 files changed, 26 insertions, 1 deletions
diff --git a/rq/results.py b/rq/results.py index a6dafde..8ff770d 100644 --- a/rq/results.py +++ b/rq/results.py @@ -169,7 +169,10 @@ class Result(object): if pipeline is None: self.id = result.decode() if ttl is not None: - connection.expire(key, ttl) + if ttl == -1: + connection.persist(key) + else: + connection.expire(key, ttl) return self.id def serialize(self): diff --git a/tests/test_results.py b/tests/test_results.py index 4f705f5..9bc1b9e 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -214,3 +214,25 @@ class TestScheduledJobRegistry(RQTestCase): job = queue.enqueue(div_by_zero) self.assertEqual(job.latest_result().type, Result.Type.FAILED) + + def test_job_return_value_result_ttl_infinity(self): + """Test job.return_value when queue.result_ttl=-1""" + queue = Queue(connection=self.connection, result_ttl=-1) + job = queue.enqueue(say_hello) + + # Returns None when there's no result + self.assertIsNone(job.return_value()) + + Result.create(job, Result.Type.SUCCESSFUL, ttl=-1, return_value=1) + self.assertEqual(job.return_value(), 1) + + def test_job_return_value_result_ttl_zero(self): + """Test job.return_value when queue.result_ttl=0""" + queue = Queue(connection=self.connection, result_ttl=0) + job = queue.enqueue(say_hello) + + # Returns None when there's no result + self.assertIsNone(job.return_value()) + + Result.create(job, Result.Type.SUCCESSFUL, ttl=0, return_value=1) + self.assertIsNone(job.return_value()) |