Added rudimentary terminal monitor

This commit is contained in:
Ilan Steemers
2015-06-23 20:54:23 +02:00
parent 8bf25299a9
commit 97a4b27f68

View File

@@ -0,0 +1,37 @@
from django.core.management.base import BaseCommand
from blessed import Terminal
from django.contrib.humanize.templatetags.humanize import naturaltime
from django_q.core import Stat
class Command(BaseCommand):
help = "Monitors cluster activity"
def handle(self, *args, **options):
term = Terminal()
with term.fullscreen(), term.hidden_cursor(), term.cbreak():
val = None
while val not in (u'q', u'Q',):
print(term.move(0, 0) + term.bold('ID'))
print(term.move(0, 10) + term.bold('Status'))
print(term.move(0, 20) + term.bold('Pool' ))
print(term.move(0, 30) + term.bold('TQ'))
print(term.move(0, 40) + term.bold('RQ'))
print(term.move(0, 50) + term.bold('Deaths'))
print(term.move(0, 60) + term.bold('Up'))
i = 2
stats = Stat.get_all()
print(term.clear_eos())
for stat in stats:
print(term.move(i, 0) + '{}'.format(stat.cluster_id))
print(term.move(i, 10) + '{}'.format(stat.status))
print(term.move(i, 20) + '{}'.format(len(stat.workers)))
print(term.move(i, 30) + '{}'.format(stat.task_q_size))
print(term.move(i, 40) + '{}'.format(stat.done_q_size))
print(term.move(i, 50) + '{}'.format(stat.reincarnations))
print(term.move(i, 60) + '{}'.format(naturaltime(stat.tob)))
i += 1
print(term.move(i+2, 0) + '[Press q to quit]')
val = term.inkey(timeout=1)