martedì 28 febbraio 2017

Django-rq comandi utili

Sono passato a django-rq
Funziona bene e fa il suo mestiere

A volte si creano situazioni un po' anomale (es. a causa di un worker che "esce male")

Ecco dunque alcuni comandi che possono essere utili
Ed esempio il seguente comando mostra a terminale la situazione di tutte le code:
$ rq info

Ci sono poi alcuni comandi che si possono dare da redis-cli...
Selezione de DB redis e visualizzazione di tutte le key utilizzate da rq
127.0.0.1:6379> select 0
127.0.0.1:6379> keys rq:*
Vedere tutte le proprietà di un job:

127.0.0.1:6379> hgetall rq:job:3f8a4ace-84a5-42ad-9a26-7ef0e5bae3ec
Lista di tutte le code utilizzate (non è detto che siano tutte quelle definite):
127.0.0.1:6379> smembers rq:queues
Lista dei job nella coda my-queue:
127.0.0.1:6379> zrange rq:finished:my-queue 0 100

Ricordarsi poi che per verificare la situazione si può ridare:
$ rq info

Riprendiamo ora il caso iniziale e chiediamoci come cancellare la situazione di un worker che è "uscito male"
127.0.0.1:6379> smembers rq:workers
127.0.0.1:6379> srem rq:workers rq:worker:"host-name"."pid"
dove "host-name" e "pid" sono rispettivamente il nome della macchina e il pid del processo che non esiste più

Per verificare poi la situazione direttamente da interfaccia admin di Django-RQ oppure con un:
$ rq info

Per vedere lo stato di un singolo job:
127.0.0.1:6379> hget rq:job:6ac9c3d2-ffa0-49c3-a2d2-3641248cb884 status

Ed infine due comandi super PERICOLOSI (use at your own risk!):
127.0.0.1:6379> flushdb  # rimuove tutte le key dal db corrente
127.0.0.1:6379> flushall  # rimuove tutte le chiavi da ogni db

Avete altre indicazioni? Scrivetele nei commenti, grazie!

Nessun commento: