As in Ginkgo (of which this module was inspired). Provides gevent primitives to orchestrate different orthogonal servers and services together.
Basic usage:
from gevent import wsgi import biloba def hello_world(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return ['<b>Hello world!</b>\n'] class MyService(biloba.Service): def make_web_server(self): return wsgi.WSGIServer( ('localhost', 5000), hello_world ) def do_start(self): self.web_server = self.make_web_server() self.spawn(self.web_server.serve_forever) # you can add more servers/services here if __name__ == '__main__': my_service = MyService() # start is called by join try: my_service.join() except KeyboardInterrupt: pass # as is stop
Biloba supports extensions. Define your module as biloba_foobar
and import
biloba.ext.foobar
will work.