#!/usr/bin/env python import sys import time from interp.cluster import QueueManager, get_qs from optparse import OptionParser if __name__ == '__main__': parser = OptionParser(usage = "usage: %s [options] ") parser.add_option('-p', '--port', type="int", dest="port", default=6666, help="specify the port to use on the server (default: %default)") parser.add_option('-a', '--auth-key', type="str", dest="authkey", default='asdf', help="authkey (default: %default)") (options, args) = parser.parse_args() if len(args) == 0: cmd = 'status' else: cmd = args[0] m = QueueManager(address=('', options.port), authkey=options.authkey) m.connect() tq,rq,mq,sq = get_qs(m) if cmd.startswith("st"): print "interp queue status:" print " tasksq : %d" % tq.qsize() print " resultsq : %d" % rq.qsize() print " masterq : %d" % mq.qsize() print " minionsq : %d" % sq.qsize() if cmd.startswith("wa"): if len(args) == 2: sleeptime = float(args[1]) else: sleeptime = 1 i = 0 while True: time.sleep(sleeptime) if i % 20 == 0: print "tasksq resultsq masterq minionsq" print "%d %d %d %d" % \ (tq.qsize(), rq.qsize(), mq.qsize(), sq.qsize(),) i += 1 if cmd == 'add': for i in xrange(int(args[1])): mq.put('jane%d' % i) if cmd == 'fresult': for i in xrange(int(args[1])): rq.put('fake.%d' % i) if cmd == 'slay': if len(args) == 1: for i in xrange(mq.qsize()): print i, "killing", mq.get() sq.put("slay") elif len(args) == 2: for i in xrange(int(args[1])): print i, "killing", mq.get() sq.put("slay") if cmd == 'clear': for i in xrange(tq.qsize()): print tq.get() for i in xrange(rq.qsize()): print rq.get() if cmd == 'clearall': for i in xrange(tq.qsize()): print tq.get() for i in xrange(rq.qsize()): print rq.get() for i in xrange(mq.qsize()): print mq.get() for i in xrange(sq.qsize()): print sq.get() if cmd == 'clearresults': for i in xrange(rq.qsize()): print rq.get()