equal
deleted
inserted
replaced
|
1 from twisted.python.threadpool import ThreadPool |
|
2 from twisted.internet import threads |
|
3 |
|
4 class Pool: |
|
5 def __init__(self,name,maxthreads): |
|
6 self.maxthreads = maxthreads |
|
7 self.pool = ThreadPool(minthreads=1, maxthreads=maxthreads, name=name) |
|
8 self.reactor = None |
|
9 |
|
10 def start(self, reactor): |
|
11 self.pool.start() |
|
12 self.reactor = reactor |
|
13 self.reactor.addSystemEventTrigger('before', 'shutdown', self.pool.stop) |
|
14 |
|
15 def run(self,f,*args,**kwargs): |
|
16 """To run a function in Twisted's thread pool""" |
|
17 return threads.deferToThreadPool(self.reactor, self.pool, f, *args, **kwargs) |
|
18 |
|
19 taskPool = Pool('task',5) |
|
20 dbPool = Pool('database',5) |
|
21 |
|
22 |
|
23 pools=[taskPool,dbPool] |
|
24 |
|
25 def startPool(reactor): |
|
26 '''starting all pools''' |
|
27 for pool in pools: |
|
28 pool.start(reactor) |
|
29 |