sql >> Database >  >> NoSQL >> Redis

RQ - Wachtrijen leegmaken en verwijderen

Opschonen met rq

RQ biedt methoden om elke wachtrij leeg te maken:

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

U kunt hetzelfde doen voor test wachtrij, als je die nog hebt.

Opschonen met rq-dashboard

Installeer rq-dashboard:

$ pip install rq-dashboard

Begin ermee:

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

Openen in browser.

Selecteer de wachtrij

Klik op de rode knop "Leeg"

En je bent klaar.

Python-functie Taken opschonen

Als u te oude Redis uitvoert, die faalt op commando van RQ, kunt u nog steeds slagen met het verwijderen van taken door python-code:

De code krijgt de naam van een wachtrij, waar taak-ID's zijn.

Met behulp van LPOP vragen we om taak-ID's per één.

Door het voorvoegsel toe te voegen (standaard "rq:job:") aan de taak-ID hebben we een sleutel, waar de taak is opgeslagen.

Door DEL op elke sleutel te gebruiken, zuiveren we onze database baan voor baan.

>>> 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. MongoDB.Driver.Builders hoe te groeperen en gemiddeld te krijgen

  2. Een lijst met indices in MongoDB?

  3. Mongoose wachtwoord hashen

  4. Hoe gebruik je een variabele als veldnaam in mongodb-native findOne()?