2024-04-20 11:08:19 发布
网友
如何在龙卷风循环中监听stdin上发生的事件?在
特别是,在龙卷风系统中,我想从stdin读取数据,对其做出反应,并在stdin关闭时终止。同时,Tornado web服务运行在同一进程上。在
在寻找这一点时,我能找到的最相似的是处理外部派生进程的流。然而,这不是我想要的:我想要处理当前进程的I/o流,即具有web服务器的进程。在
从结构上讲,我的服务器几乎是hello-world tornado,因此我们可以以此为基础来创建示例。我只需要添加一个stdin处理程序。在
您可以在IOLoop实例上使用add_handler方法来监视stdin上的事件。在
IOLoop
add_handler
stdin
下面是一个最小的工作示例:
from tornado.ioloop import IOLoop from tornado.web import Application, RequestHandler import sys class MainHandler(RequestHandler): def get(self): self.finish("foo") application = Application([ (r"/", MainHandler), ]) def on_stdin(fd, events): content = fd.readline() print "received: %s" % content if __name__ == "__main__": application.listen(8888) IOLoop.instance().add_handler(sys.stdin, on_stdin, IOLoop.READ) IOLoop.instance().start()
您可以在
IOLoop
实例上使用add_handler
方法来监视stdin
上的事件。在下面是一个最小的工作示例:
相关问题 更多 >
编程相关推荐