使用JOB-ID的Redis队列杀死作业

问题描述

我使用Python Flask + Redis,并使用以下代码将作业排入redis队列:

 with Connection(redis.from_url("redis://localhost:6379")):
            queue = Queue()
            task = queue.enqueue(self.redis_method,job_timeout=86400,result_ttl=604800,failure_ttl=604800)
            response_object = {"status": "success","data": {"task_id": task.get_id()}}
            return response_object

工作正在排队,执行开始,我得到排队工作的Job-id。并使用下面的代码杀死Job,但即使在执行下面的代码后执行也不会停止

cancel_job(job_id=job_id,connection= redis.from_url("redis://localhost:6379"))

任何帮助表示赞赏。在此先感谢〜

解决方法

cancel_job 从队列中删除作业。如果它已经在执行过程中,你必须杀死这个工人。

from rq.command import send_kill_horse_command

send_kill_horse_command(connection,worker_name)