made iqmanager more complicated and better

This commit is contained in:
Stephen Mardson McQuay 2011-05-26 10:12:01 -06:00
parent c08504a089
commit a1527b25c8

View File

@ -4,58 +4,84 @@ import sys
import time import time
import interp.bootstrap import interp.bootstrap
from interp.cluster import QueueManager, get_qs from interp.cluster import QueueManager, get_qs
from optparse import OptionParser
m = QueueManager(address=('localhost', 6666), authkey='asdf') if __name__ == '__main__':
m.connect() parser = OptionParser(usage = "usage: %s [options] <status|watch|add|fresult #|slay|clear|clearall|clearresults>")
tq,rq,mq,sq = get_qs(m) parser.add_option('-p', '--port',
type="int", dest="port", default=6666,
help="specify the port to use on the server (default: %default)")
if len(sys.argv) == 1: parser.add_option('-a', '--auth-key',
sys.argv.append("st") type="str", dest="authkey", default='asdf',
help="authkey (default: %default)")
(options, args) = parser.parse_args()
if sys.argv[1].startswith("st"): if len(args) == 0:
print "interp queue status:" cmd = 'status'
print " tasksq : %d" % tq.qsize()
print " resultsq : %d" % rq.qsize()
print " masterq : %d" % mq.qsize()
print " minionsq : %d" % sq.qsize()
if sys.argv[1].startswith("wa"):
if len(sys.argv) == 3:
sleeptime = float(sys.argv[2])
else: else:
sleeptime = 1 cmd = args[0]
i = 0 m = QueueManager(address=('', options.port), authkey=options.authkey)
while True: m.connect()
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 sys.argv[1] == 'add': tq,rq,mq,sq = get_qs(m)
for i in xrange(int(sys.argv[2])):
mq.put('jane')
if sys.argv[1] == 'slay': if cmd.startswith("st"):
if len(sys.argv) == 2: print "interp queue status:"
for i in xrange(mq.qsize()): print " tasksq : %d" % tq.qsize()
print i, "killing", mq.get() print " resultsq : %d" % rq.qsize()
sq.put("slay") print " masterq : %d" % mq.qsize()
elif len(sys.argv) == 3: print " minionsq : %d" % sq.qsize()
for i in xrange(int(sys.argv[2])):
print i, "killing", mq.get() if cmd.startswith("wa"):
sq.put("slay") 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 sys.argv[1] == 'clear': if cmd == 'clear':
for i in xrange(tq.qsize()): print tq.get() for i in xrange(tq.qsize()): print tq.get()
for i in xrange(rq.qsize()): print rq.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 == '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()