summaryrefslogtreecommitdiff
path: root/rq
diff options
context:
space:
mode:
authorSelwin Ong <selwin.ong@gmail.com>2023-02-05 19:24:15 +0700
committerGitHub <noreply@github.com>2023-02-05 19:24:15 +0700
commitacdeff385daf5157e6646dfb47a02f92e6b19b3a (patch)
treeb85fa6a3d02a1b232d91bea3df0be65a3f1b9e31 /rq
parent54db2fa8d1af221485870ddf7c5707cd704c73c7 (diff)
downloadrq-acdeff385daf5157e6646dfb47a02f92e6b19b3a.tar.gz
Use job.return_value() instead of job.result when processing callbacks (#1801)
* Use job.return_value() instead of job.result when processing callbacks * job.return_value() should also support Redis server < 5.
Diffstat (limited to 'rq')
-rw-r--r--rq/job.py8
-rw-r--r--rq/queue.py4
2 files changed, 10 insertions, 2 deletions
diff --git a/rq/job.py b/rq/job.py
index 9bc08f1..81ed98e 100644
--- a/rq/job.py
+++ b/rq/job.py
@@ -743,6 +743,14 @@ class Job:
self._cached_result = None
if not self.supports_redis_streams:
+ if self._result is not None:
+ return self._result
+
+ rv = self.connection.hget(self.key, 'result')
+ if rv is not None:
+ # cache the result
+ self._result = self.serializer.loads(rv)
+ return self._result
return None
if not self._cached_result:
diff --git a/rq/queue.py b/rq/queue.py
index 3b3e7b0..bde1ceb 100644
--- a/rq/queue.py
+++ b/rq/queue.py
@@ -1035,10 +1035,10 @@ class Queue:
pipeline.execute()
if job.failure_callback:
- job.failure_callback(job, self.connection, *sys.exc_info())
+ job.failure_callback(job, self.connection, *sys.exc_info()) # type: ignore
else:
if job.success_callback:
- job.success_callback(job, self.connection, job.result)
+ job.success_callback(job, self.connection, job.return_value()) # type: ignore
return job