Thanks for the quick reply. I don't need Ampoule, since the tasks are simply calling some libreoffice api to convert documents to pdf format, but thank you all the same!
On Sat, Sep 1, 2012 at 1:53 PM, Glyph <gl...@twistedmatrix.com> wrote: > > On Aug 31, 2012, at 10:30 PM, Shuai Lin <linshuai2...@gmail.com> wrote: > > > Hi all, > > > > My server mainly consists of two modules: > > -- http api handling (using twisted) > > -- backend blocking tasks > > > > The backend tasks have to block, because I have to call some > third-party API, which is always blocking. What's more, since the > third-party api call is blocking, I plan to use a thread pool to implement > a connection pool. > > > > My question is: Is it ok to use twisted in this manner? i.e. I just > run `reactor.run()' in the main thread (to handle the http api request), > and the rest of the program is blocking -- and intrinsically not related > to twisted. > > > > Any suggestion is appreciated. Thanks! > > Sure, this is fine. This is why the reactor has callInThread() after all > :). It may also make sense to use something like Ampoule < > https://launchpad.net/ampoule> if the backend tasks are CPU intensive as > well, and you want multi-core parallelism. > > -glyph > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python