start documenting with reST syntax.
from twisted.python.threadpool import ThreadPool
from twisted.internet import threads
class Pool:
def __init__(self,name,maxthreads):
self.maxthreads = maxthreads
self.pool = ThreadPool(minthreads=1, maxthreads=maxthreads, name=name)
self.reactor = None
def start(self, reactor):
self.pool.start()
self.reactor = reactor
self.reactor.addSystemEventTrigger('before', 'shutdown', self.pool.stop)
def run(self,f,*args,**kwargs):
"""To run a function in Twisted's thread pool"""
return threads.deferToThreadPool(self.reactor, self.pool, f, *args, **kwargs)
#task Pool for sending
taskPool = Pool('task',5)
#db Pool to handle reqests to sqlalchemy
dbPool = Pool('database',5)
# all pools in one list
pools=[taskPool,dbPool]
def startPool(reactor):
'''starting all pools'''
for pool in pools:
pool.start(reactor)