RQ – Vaciar y eliminar colas

Estoy usando RQ , y tengo una cola failed con miles de elementos, y otra cola de test que creé hace un tiempo para la prueba que ahora está vacía y sin usar. Me pregunto cómo eliminar todos los trabajos de la cola failed y eliminar la cola de test completo.

Disculpas por la pregunta básica, pero no puedo encontrar información sobre esto en los documentos de RQ , y soy completamente nuevo tanto en Redis como en RQ … ¡Gracias de antemano!

Limpieza usando rq

RQ ofrece métodos para hacer que cualquier cola esté vacía:

 >>> from redis import Redis >>> from rq import Queue >>> qfail = Queue("failed", connection=Redis()) >>> qfail.count 8 >>> qfail.empty() 8L >>> qfail.count 0 

Puede hacer lo mismo para la cola de test , si todavía la tiene presente.

Limpieza utilizando rq-dashboard

Instalar rq-dashboard:

 $ pip install rq-dashboard 

Iniciarlo:

 $ rq-dashboard RQ Dashboard, version 0.3.4 * Running on http://0.0.0.0:9181/ 

Abierta en el navegador.

Seleccione la cola

Haga clic en el botón rojo “Vaciar”

Y has terminado.

Trabajos de purga de la función de Python

Si ejecuta Redis demasiado antiguo, que falla en el comando usado por RQ, aún podría tener éxito con la eliminación de trabajos mediante el código Python:

El código toma el nombre de una cola, donde están los identificadores de trabajo.

Usilg LPOP solicitamos ID de trabajo por uno.

Agregando el prefijo (por defecto “rq: job:”) a la ID del trabajo tenemos una clave, donde se almacena el trabajo.

Usando DEL en cada clave, depuramos nuestra base de datos trabajo por trabajo.

 >>> import redis >>> r = redis.StrictRedis() >>> qname = "rq:queue:failed" >>> def purgeq(r, qname): ... while True: ... jid = r.lpop(qname) ... if jid is None: ... break ... r.delete("rq:job:" + jid) ... print jid ... >>> purge(r, qname) a0be3624-86c1-4dc4-bb2e-2043d2734b7b 3796c312-9b02-4a77-be89-249aa7325c25 ca65f2b8-044c-41b5-b5ac-cefd56699758 896f70a7-9a35-4f6b-b122-a08513022bc5 

– 2016 –

Ahora puede usar la línea de comando de la opción empty de rq:

 /path/to/rq empty queue_name 

Así que puedes usarlo para vaciar cualquier cola, no solo la que falla.

La herramienta de monitoreo rqinfo puede vaciar la cola fallida.
Solo asegúrate de tener un virtualenv activo con rq instalado y ejecuta

$ rqinfo --empty-failed-queue

Vea rqinfo --help para más detalles.

Usted puede simplemente iniciar sesión para redis y borrar todas las colas

iniciar sesión

usuario @ usuario: ~ $ redis-cli

Entra en este comando y pulsa enter

FLUSHALL

Y tu estas listo