zasyncdispatcher, a small load balancer for background processes using zasync
Thanks to zasync, I can send some processes to the baground in zope (see
past posts in this blog)
We have an intranet where we want to distribute background processes to
several machines, so we want to use several zasync clients to maximize the
number of simultaneous bakground processes.
Based on the recipe Gary Poster gave me, I have created a tiny Z2 product
(about 10 lines of code) that instanciate a folderish object in the ZODB and
let the admin create asynchronous call manager objects in it.
Each asynchronous call manager object is linked to a zasync client by
changing a few params in the conf file.
The folder object (=the dispatcher) publishes a few APIs (putCall,
My code calls it and let the dispatcher choose wich asynchronous call
manager is the less busy and forward the call to it.
That let the administrator freely add or remove zasync clients, it's
pretty smooth :)
Thanks Gary !
the code is here if you want to use it:
(Post originally written by Tarek Ziadé on the old Nuxeo blogs.)
Category: Product & Development