Skip to main content

mixins for tornado

Project description

pip install tornadoist2

tornadoist -currently- provides Mixins to execute code outside tornado.ioloop.IOLoop to avoid blocking. These are:

  • CeleryMixin: Celery Tasks

  • ProcessMixin: Functions in separate process

Both support results, avoids polling or timeouts. More info below.

Demo app included. (Celery with mongodb:// preconfigured in demo app)

CeleryMixin

CeleryMixin is a Mixin class to use with tornado.web.RequestHandler that provides a Tornado-like interface to running Celery tasks on TornadoServer.

HowTO

Using tornado.gen

from tornado import web, gen
from tornadoist2 import CeleryMixin

class CeleryHandler(tornado.web.RequestHandler, CeleryMixin):
    @web.asynchronous
    @gen.engine
    def get(self):
        result = yield gen.Task(self.add_task, some_task, 'somearg')
        self.write('Hello %s World!' % result)
        self.finish()

Or using explicit callback

class CeleryHandler(tornado.web.RequestHandler, CeleryMixin):
    @tornado.web.asynchronous
    def get(self):
        self.add_task(some_task, callback=self._on_result)

    def _on_result(self, result):
        do_something_with_result(result)
        self.finish()

ProcessMixin

ProcessMixin is a Mixin class to use with tornado.web.RequestHandler that provides a Tornado-like interface to running functions with multiprocessing.Process outside IOLoop.

HowTO

Using tornado.gen

from tornado import web, gen
from tornadoist import ProcessMixin

class ProcessHandler(tornado.web.RequestHandler, ProcessMixin):
    @tornado.web.asynchronous
    @tornado.gen.engine
    def get(self):
        result = yield tornado.gen.Task(self.add_task, my_blocking_function,
                                        'somearg', some_kwarg=42)
        self.write('Hello Process World! %s' % result)
        self.finish()

License

Apache License, Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tornadoist2-0.2.1.tar.gz (4.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page