diff options
Diffstat (limited to 'server3.py')
-rw-r--r-- | server3.py | 38 |
1 files changed, 13 insertions, 25 deletions
@@ -1,46 +1,34 @@ from klein import run, route -from twisted.internet.threads import deferToThread -from twisted.protocols import amp +from twisted.internet import defer from twisted.internet import reactor -from ampoule import child, pool +from ampoule import pool + +import tasks import sys from twisted.python import log -log.startLogging(sys.stdout) - -def fib(n): - if n <= 2: - return 1 - else: - return fib(n-1) + fib(n-2) +log.startLogging(sys.stdout) -class Fib(amp.Command): - response = [('total', amp.Integer())] - -class DelayedFib(amp.AMP): - def slowFib(self): - result = fib(25) - return result - Fib.responder(slowFib) @route('/') def home(request): - d = pp.doWork(Fib) - return d + d = pp.doWork(tasks.Fib) + d.addCallback(lambda res: str(res['fib'])) + return d pp = None + +@defer.inlineCallbacks def start_pool(): global pp - pp = pool.ProcessPool(child.AMPChild, recycleAfter=5000) - pp.min = 1 - pp.max = 5 - pp.start() - + pp = pool.ProcessPool(tasks.FibCalculator, min=1, max=1) + print 'starting pool' + yield pp.start() if __name__ == "__main__": reactor.callWhenRunning(start_pool) |