跳转到主要内容

tornado混入

项目描述

tornadoist -目前- 提供混入以在 tornado.ioloop.IOLoop 外部执行代码以避免阻塞。这些是

  • CeleryMixin: Celery任务

  • ProcessMixin: 在单独的进程中函数

两者都支持结果,避免了轮询或超时。更多信息见下文。

包含演示应用程序。(在演示应用程序中预配置了mongodb://)

CeleryMixin

CeleryMixin 是一个与 tornado.web.RequestHandler 一起使用的混入类,它为在 TornadoServer 上运行 Celery 任务提供了类似 Tornado 的接口。

如何使用

使用 tornado.gen

from tornado import web, gen
from tornadoist 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()

或使用显式回调

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 是一个与 tornado.web.RequestHandler 一起使用的混入类,它为在 IOLoop 外部使用 multiprocessing.Process 运行函数提供了类似 Tornado 的接口。

如何使用

使用 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()

许可证

Apache许可证,版本2.0

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解有关安装软件包的更多信息。

源分布

tornadoist-0.5.2.tar.gz (4.3 kB 查看哈希值)

上传时间 源代码

由...