diff --git a/rq/job.py b/rq/job.py index fde9c0cf..5ac40dda 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 df17f302..bf7af5bc 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()