Redis
 sql >> Database >  >> NoSQL >> Redis

Annullare un'attività già in esecuzione in Python RQ?

Se hai l'istanza di lavoro a portata di mano, semplicemente

job.cancel()

O se riesci a determinare l'hash:

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

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

Ma questo lo rimuove semplicemente dalla coda; Non so se lo ucciderà se è già in esecuzione.

Potresti farlo registrare il tempo del muro, quindi controllarsi periodicamente e sollevare un'eccezione/autodistruzione dopo un periodo di tempo.

Per lo stile manuale, ad hoc, morte:se hai redis-cli installato puoi fare qualcosa di drastico come svuotare tutte le code e i lavori:

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

Sto ancora scavando nella documentazione per cercare di trovare come eseguire un'uccisione di precisione.

Non sono sicuro che questo aiuti qualcuno poiché la domanda ha già 18 mesi.