首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gevent + tornado.httpserver.HTTPServer

Gevent + tornado.httpserver.HTTPServer
EN

Stack Overflow用户
提问于 2013-10-03 19:50:50
回答 1查看 496关注 0票数 0

有没有办法在gevent中运行tornado.httpserver.HTTPServer?

我正在为一个大文件上传写一个简单的代理服务器,想法很简单-它监控一堆服务器上的空闲空间(到目前为止没有问题),并且应该将PUT请求路由到其中一个WebDAV服务器。为了提高效率,我想一块一块地流式传输它,并且无法基于gevent中的pywsgi提出解决方案。

代码语言:javascript
复制
settings = setup()
log.info('Listening on %s:%d' % (settings.host, settings.port))

# server for request routing
server = WSGIServer((settings.host, settings.port), app)

# separate greenlet to periodically get info about cluster free space
monitor = gevent.spawn(storage_monitor, settings.timeout)

# setup a proper signals to stop server and monitor greenlet
gevent.signal(signal.SIGTERM, monitor.kill)
gevent.signal(signal.SIGINT, monitor.kill)
gevent.signal(signal.SIGQUIT, monitor.kill)

gevent.signal(signal.SIGTERM, server.stop)
gevent.signal(signal.SIGINT, server.stop)
gevent.signal(signal.SIGQUIT, server.stop)

# start the server
server.start()
gevent.wait()

也许我只是不理解一般的东西?由于gevent文档没有更新到1.0,因此这是一项相当艰巨的任务:)

也许使用gevent的StreamServer +自定义协议更好呢?

EN

回答 1

Stack Overflow用户

发布于 2013-10-04 20:55:54

将Tornado和greenlet风格的并发结合起来是可能的(例如,参见Motor,或者this question上的首选答案),但它很复杂,并且主要用作同步和异步世界之间的桥梁。在一个新的项目中,我会敦促你选择一种风格并坚持下去,而不是组合多个复杂的框架。

其次,Tornado的HTTPServer目前(3.1版)不支持流请求,所以它也不会给你想要的东西。我认为Twisted可以,但我再次建议选择Twisted或gevent,而不是尝试将它们组合在一起。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19158480

复制
相关文章

相似问题

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