import sys sys.path.append('bin') from run_local import log from light9.effect.sequencer import sendToCollector, sendToCollectorZmq from light9.namespaces import L9, DEV from twisted.internet import reactor import time import logging log.setLevel(logging.DEBUG) def loadTest(): print "scheduling loadtest" n = 2500 times = [None] * n session = "loadtest%s" % time.time() offset = 0 for i in range(n): def send(i): if i % 100 == 0: log.info('sendToCollector %s', i) d = sendToCollector("http://localhost:999999/", session, [[DEV["backlight1"], L9["color"], "#ffffff"], [DEV["backlight2"], L9["color"], "#ffffff"], [DEV["backlight3"], L9["color"], "#ffffff"], [DEV["backlight4"], L9["color"], "#ffffff"], [DEV["backlight5"], L9["color"], "#ffffff"], [DEV["down2"], L9["color"], "#ffffff"], [DEV["down3"], L9["color"], "#ffffff"], [DEV["down4"], L9["color"], "#ffffff"], [DEV["houseSide"], L9["level"], .8], [DEV["backlight5"], L9["uv"], 0.011]]) def ontime(dt, i=i): times[i] = dt d.addCallback(ontime) reactor.callLater(offset, send, i) offset += .002 def done(): print "loadtest done" with open('/tmp/times', 'w') as f: f.write(''.join('%s\n' % t for t in times)) reactor.stop() reactor.callLater(offset+.5, done) reactor.run() if __name__ == '__main__': loadTest()