Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>My reaction is to suggest Twisted, but you've already looked at this. Still, I stick by my answer. Without knowing you personal pain-points, I can at least share some things that helped me reduce almost all of the deferred-madness that arises when you have several dependent, blocking actions you need to perform for a client.</p> <p>Inline callbacks (lightly documented here: <a href="http://twistedmatrix.com/documents/8.2.0/api/twisted.internet.defer.html" rel="nofollow noreferrer">http://twistedmatrix.com/documents/8.2.0/api/twisted.internet.defer.html</a>) provide a means to make long chains of deferreds much more readable (to the point of looking like straight-line code). There is an excellent example of the complexity reduction this affords here: <a href="http://blog.mekk.waw.pl/archives/14-Twisted-inlineCallbacks-and-deferredGenerator.html" rel="nofollow noreferrer">http://blog.mekk.waw.pl/archives/14-Twisted-inlineCallbacks-and-deferredGenerator.html</a></p> <p>You don't always have to get your bulk processing to integrate nicely with Twisted. Sometimes it is easier to break a large piece of your program off into a stand-alone, easily testable/tweakable/implementable command line tool and have Twisted invoke this tool in another process. Twisted's <code>ProcessProtocol</code> provides a fairly flexible way of launching and interacting with external helper programs. Furthermore, if you suddenly decide you want to <em>cloudify</em> your application, it is not all that big of a deal to use a <code>ProcessProtocol</code> to simply run your bulk processing on a remote server (random EC2 instances perhaps) via <code>ssh</code>, assuming you have the keys setup already.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload