Redis
 sql >> Base de données >  >> NoSQL >> Redis

Annuler une tâche déjà en cours d'exécution dans Python RQ ?

Si vous avez l'exemple de travail à portée de main, simplement

job.cancel()

Ou si vous pouvez déterminer le hachage :

from rq import cancel_job
cancel_job('2eafc1e6-48c2-464b-a0ff-88fd199d039c')

http://python-rq.org/contrib/

Mais cela le supprime simplement de la file d'attente ; Je ne sais pas si cela le tuera s'il est déjà en cours d'exécution.

Vous pouvez lui faire enregistrer l'heure du mur, puis se vérifier périodiquement et déclencher une exception/autodestruction après un certain temps.

Pour le style manuel, ad hoc, la mort :si vous avez redis-cli installé, vous pouvez faire quelque chose de drastique comme vider toutes les files d'attente et les tâches :

$ redis-cli
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> exit

Je suis toujours en train de fouiller dans la documentation pour essayer de trouver comment faire un kill de précision.

Je ne sais pas si cela aide quelqu'un puisque la question date déjà de 18 mois.