summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelwin Ong <selwin.ong@gmail.com>2022-07-24 10:29:49 +0700
committerSelwin Ong <selwin.ong@gmail.com>2022-07-24 10:29:49 +0700
commit013818953345570da4c77d4c2675ce4a22034eeb (patch)
tree1bec08e921dafc1b75dbcca804e38af8eea0bc22
parent468eb00c13b5ff65bb0feb6785c6a8b889387aea (diff)
downloadrq-delete-stopped-jobs.tar.gz
When stopped jobs are deleted, they should also be removed from FailedJobRegistry.delete-stopped-jobs
-rw-r--r--rq/job.py2
-rw-r--r--tests/test_job.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/rq/job.py b/rq/job.py
index fde9c0c..5ac40dd 100644
--- a/rq/job.py
+++ b/rq/job.py
@@ -772,7 +772,7 @@ class Job:
serializer=self.serializer)
registry.remove(self, pipeline=pipeline)
- elif self.is_failed:
+ elif self.is_failed or self.is_stopped:
self.failed_job_registry.remove(self, pipeline=pipeline)
elif self.is_canceled:
diff --git a/tests/test_job.py b/tests/test_job.py
index df17f30..bf7af5b 100644
--- a/tests/test_job.py
+++ b/tests/test_job.py
@@ -621,6 +621,15 @@ class TestJob(RQTestCase):
job.delete()
self.assertFalse(job in registry)
+ job = Job.create(func=fixtures.say_hello, status=JobStatus.STOPPED,
+ connection=self.testconn, origin='default', serializer=JSONSerializer)
+ job.save()
+ registry = FailedJobRegistry(connection=self.testconn, serializer=JSONSerializer)
+ registry.add(job, 500)
+
+ job.delete()
+ self.assertFalse(job in registry)
+
job = Job.create(func=fixtures.say_hello, status=JobStatus.FINISHED,
connection=self.testconn, origin='default', serializer=JSONSerializer)
job.save()