diff options
author | Kali Kaneko (leap communications) <kali@leap.se> | 2016-03-31 21:54:49 -0400 |
---|---|---|
committer | Kali Kaneko (leap communications) <kali@leap.se> | 2016-03-31 22:30:44 -0400 |
commit | ce4cb42cb521260e2f7091dd80b136320f32663f (patch) | |
tree | 8977899c8761ce6492fe631522d28e4398b61d17 | |
parent | 39794129de708ec8e6a2e18ee6f0ac094844407c (diff) |
pass FIB parameter as environment variable
-rw-r--r-- | README.rst | 6 | ||||
-rw-r--r-- | server.py | 10 | ||||
-rw-r--r-- | server2.py | 12 | ||||
-rw-r--r-- | server3.py | 13 | ||||
-rw-r--r-- | tasks.py | 17 |
5 files changed, 43 insertions, 15 deletions
@@ -20,6 +20,12 @@ performance:: make perf-little # runs httperf against the server, (less requests). make perf-easy # runs httperf against a no-cpu load. +If you want to modify the cpu load, you can pass the FIB parameter as an +environment variable:: + FIB=20 make inline-server + curl localhost:8080/ + $ answer is >>> 6765 + Analysis --------------- @@ -1,11 +1,17 @@ +import os from klein import run, route +import tasks -from tasks import fib +FIB = os.environ.get('FIB', tasks.FIB_DEFAULT) @route('/') def home(request): - return 'answer is >> %s' % fib(30) + return 'answer is >>> %s\n' % tasks.fib(FIB) + +@route('/hi') +def ping(request): + return 'easy!' if __name__ == "__main__": run("localhost", 8080) @@ -1,14 +1,20 @@ +import os from klein import run, route from twisted.internet.threads import deferToThread +import tasks -from tasks import fib +FIB = os.environ.get('FIB', tasks.FIB_DEFAULT) @route('/') def home(request): - d = deferToThread(fib, 30) - d.addCallback(lambda result: 'answer is >> %s' % result) + d = deferToThread(tasks.fib, FIB) + d.addCallback(lambda result: 'answer is >>> %s\n' % result) return d +@route('/hi') +def ping(request): + return 'easy!' + if __name__ == "__main__": run("localhost", 8080) @@ -1,23 +1,24 @@ +import os +import sys from klein import run, route from twisted.internet import defer from twisted.internet import reactor +from twisted.python import log from ampoule import pool import tasks -import sys -from twisted.python import log - log.startLogging(sys.stdout) +FIB = os.environ.get('FIB', tasks.FIB_DEFAULT) + @route('/') def home(request): - - d = pp.doWork(tasks.Fib) - d.addCallback(lambda res: str(res['fib'])) + d = pp.doWork(tasks.Fib, n=int(FIB)) + d.addCallback(lambda res: 'answer is >>> {r}\n'.format(r=res['fib'])) return d @route('/hi') @@ -1,20 +1,29 @@ +import os from twisted.protocols import amp from ampoule import child +FIB_DEFAULT = 30 + def fib(n): + '''very silly fibonacci function. + do not try to optimize this, the idea is to make your cpu suffer for a + while''' + n = int(n) if n <= 2: return 1 else: return fib(n-1) + fib(n-2) +# ampoule stuff class Fib(amp.Command): - response = [("fib", amp.Integer())] + arguments = [('n', amp.Integer())] + response = [('fib', amp.Integer())] class FibCalculator(child.AMPChild): @Fib.responder - def fib(self): - print 'called responder, fib...' - return {"fib": fib(30)} + def fib(self, n): + #print "FIB FUNCTION CALLED WITH", n + return {"fib": fib(n)} |