问题标签 [tornado]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4735 浏览

python - Facebook 的新 Tornado 框架是什么?

Facebook 刚刚开源了一个名为 Tornado 的框架

它是什么?它对网站有什么帮助?

我相信 Facebook 使用 LAMP 结构。它对在 LAMP 堆栈下编写的小型站点有用吗?

0 投票
1 回答
2592 浏览

apache2 - Tornado 是“一个用 Python 编写的相对简单的、非阻塞的 Web 服务器框架”——可以稍微解释一下这意味着什么吗?

这可能是一个愚蠢的问题,但究竟什么是“非阻塞 Web 服务器”?所有的 Web 服务器在技术上都是非阻塞的,不是吗?否则他们如何处理同时连接?Apache2 使用 fork() 和 pthreads 的组合来实现这一点。Tornado(和 Twisted)到底有什么不同?他们是否只是将一堆套接字设置为非阻塞模式,构建一个 FD 列表(或等效的),然后用一个大的 select() 系统调用循环它?

你会在哪里使用这样的框架,与 Apache2(或其他流行的服务器)相比,它们能给你带来什么优势?谢谢

0 投票
1 回答
2115 浏览

python - 龙卷风入门

通过 apt(python 2.5、simplejson 等)安装必要的软件包后,当我尝试运行演示时出现错误。

这是安装必要软件包的证明

似乎没有太多人从friendfeed中尝试过这个Tornado的东西。有人有任何建议/提示可以帮助我启动并运行它吗?

0 投票
5 回答
4178 浏览

multiple-instances - How can I start multiple Tornado Server instances in multiple ports

I need to start the blog demo in the following ports:

127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003

When I run the application using:

./demos/blog/blog.py

it starts in port 8888 as defined by:

define("port", default=8888, help="run on the given port", type=int)

How do I run multiple instances in multiple ports?

0 投票
1 回答
586 浏览

apache - PyAMF 后端选择!

我一直在使用 PyAMF 为 flex 应用程序编写后端,该应用程序将根据客户的需要请求数百个不同图像的不同组。在开发 flex 代码时,我一直在使用 PyAMF 提供的“simple_server”WSGI 服务器。现在我准备编写一个强大的后端,它能够从 mySQL 数据库中提取图像,并尽可能快、尽可能高效地将它们发送给许多并发客户端。

PyAMF 文档很棒,因为它们提供了许多示例,但是我对我要创建的后端类型感到困惑。

我想要一个 SocketServer 或一个 WSGI 服务器或类似 Twisted、web2py 或 Tornado 的东西吗?这些甚至都不同吗?:) 我应该改用 Apache 模块(mod_wsgi 或 modjy 或 mod_python)吗?

我意识到这可能涉及许多公开辩论,所以也许你可以指出我对这些辩论的任何好的总结?

有这么多选择真是太好了,但是我该如何选择呢?

0 投票
2 回答
3078 浏览

python - 如何运行多个 Tornado 进程/线程/前端?

在 tornado 文档中,他们展示了如何从4 个前端获得非常大的吞吐量。我想以相同的方式运行应用程序,并希望前端作为守护进程运行,并使用 init.d 脚本*进行管理。

我对 Python 还很陌生,所以真的不知道从哪里开始。目前我正在终端中手动启动 Tornado 服务器,每次都传入一个新的端口号。

我尝试将python-daemon 包lockfile 包结合使用,但创建的锁文件中没有进程 ID,我看不到如何稍后优雅地终止进程。

我真的不知道从哪里开始,Tornado 文档在部署方面留下了很大一部分内容。

* 如果有更好的方法来管理流程,以便可以将它们作为一个组进行监控和管理,请告诉我。

0 投票
7 回答
11279 浏览

python - Python 中 Comet 的最新推荐?

我将在 Python 中实现 Comet(尽管我听说了关于 erlycomet 的好消息,但除了后端中的所有其他内容之外,我对支持基于 Erlang 的 Web 服务器并不感到兴奋)。我发现了几种可能性:

(还有其他一些与 Java 服务器交互的选择,但我对这些不感兴趣)

考虑到性能、社区和易于实施,有人可以在这些实施中提出建议吗?

0 投票
5 回答
2539 浏览

http - HTTP 作为游戏的通信层

我刚刚开始涉足一些游戏开发,并想创建一个简单的多人游戏。使用 HTTP 作为多人游戏的主要通信协议是否可行。我的游戏不会每秒发出多个请求,而是每隔几秒发出一个请求。客户端将是移动设备。

我问的原因是,我认为尝试使用 Tornado 可能会很有趣,据报道它可以很好地扩展并支持非阻塞请求并且可以处理“数千个并发用户”。

所以我的客户端可以发出一个 HTTP 请求,当游戏服务器有什么要告诉它时,它会响应这个请求。我相信这说明了一些人所说的 COMET 设计模式。

我知道在套接字级别工作的开销更少,但我只是想知道考虑到我的游戏要求这是否可行?还是我只是想疯了?

提前致谢。

0 投票
1 回答
2084 浏览

python - Python Tornado Web - AttributeError:“连接”对象没有属性“_execute”

当我在生产服务器上部署我的应用程序时,我在使用最新的 tornadoweb 分支时遇到了一种奇怪的行为。

我对代码进行了多次测试,当我在笔记本电脑(Archlinux)上使用 python 2.6.3 和 MySQLdb 1.2.3b2 对其进行测试时,它可以完全正常工作。

一旦我使用 python 2.6.2、MySQLdb 1.2.3.c1(已经测试过 1.2.1 版本)在我的生产服务器(Ubuntu x64)上部署并调用该页面,它就会引发此错误:

奇怪的行为也是在我的笔记本电脑上测试本机演示(称为博客)它工作正常,但是一旦我将它部署到生产中,它就会停止使用上面列出的保存问题。

我必须添加db.get/db.query函数工作正常。

0 投票
6 回答
24230 浏览

django - REMOTE_ADDR 未使用 nginx 和龙卷风发送到 Django

因此,我使用 nginx 进行了简单的设置,用于静态媒体和负载平衡,并使用 tornado 作为 django 的网络服务器(运行 4 个服务器)。我的问题是 remote_addr 没有传递给 django 所以我得到一个 KeyError:

article.ip = request.META['REMOTE_ADDR']

由于 nginx.conf,远程地址作为 X-Real-IP (HTTP_X_REAL_IP) 发送:

由于 HTTP 附加到 META 键,我不能只做 proxy_set_header remote_addr $remote_addr。如果没有找到远程地址密钥,我可以做的是读取 X-Real-IP,但我很好奇是否有更智能的解决方案。

谢谢!