首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >龙卷风相当于延迟

龙卷风相当于延迟
EN

Stack Overflow用户
提问于 2012-06-21 06:09:22
回答 3查看 11.1K关注 0票数 18

在tornado中是否有用于延迟函数的等效命令,而不会影响主进程休眠(因此,即使主线程终止新的函数调用,回调也会执行)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-21 17:24:45

试试这个:

代码语言:javascript
复制
import time
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, asynchronous
from tornado import gen

class MyHandler(RequestHandler):
    @asynchronous
    @gen.engine
    def get(self):
        self.write("sleeping .... ")
        self.flush()
        # Do nothing for 5 sec
        yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)
        self.write("I'm awake!")
        self.finish()

摘自here

票数 30
EN

Stack Overflow用户

发布于 2015-02-12 09:29:55

请注意,从4.1开始,他们添加了一个gen.sleep(delay)方法。

所以

代码语言:javascript
复制
yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)

就会变成

代码语言:javascript
复制
yield gen.sleep(5)
票数 21
EN

Stack Overflow用户

发布于 2013-10-25 09:10:04

可能是多余的

我喜欢回调风格

代码语言:javascript
复制
class MyHandler(RequestHandler):
    @asynchronous
    def get(self):
        self.write("sleeping .... ")
        self.flush()
        IOLoop.instance().add_timeout(time.time() + 5, self._process)

    def _process(self)
        # Do nothing for 5 secs
        self.write("I'm awake!")
        self.finish()
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11128923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档