sql >> Databasteknik >  >> NoSQL >> Redis

RQ - Töm &Ta bort köer

Rensa med rq

RQ erbjuder metoder för att göra vilken kö som helst tom:

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

Du kan göra samma sak för test kö, om du har den kvar.

Städning med rq-dashboard

Installera rq-dashboard:

$ pip install rq-dashboard

Starta det:

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

Öppna i webbläsaren.

Välj kön

Klicka på den röda knappen "Töm"

Och du är klar.

Python-funktion Rensa jobb

Om du kör för gammal Redis, som misslyckas på kommando som används av RQ, kan du fortfarande lyckas med att ta bort jobb med pythonkod:

Koden tar ett namn på en kö, där finns jobb-ID.

Med hjälp av LPOP ber vi om jobb-ID av en.

Genom att lägga till prefix (som standard "rq:job:") till jobb-id har vi en nyckel, var jobbet lagras.

Genom att använda DEL på varje tangent rensar vi vår databas jobb för jobb.

>>> 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


  1. Kör ett R-skript vid uppstart

  2. Maskering av PII i MongoDB, Cassandra och Elasticsearch med DarkShield:...

  3. Behöver jag avsluta min nod redis-klientinstans med .quit()?

  4. Hur undkommer man @ i ett lösenord i pymongo-anslutning?