草庐IT

sockjs-tornado

全部标签

python - Tornado :如何为多个请求共享 pymongo 连接?

我想为多个请求共享一个MongoDB连接。这就是我现在所拥有的,但看起来它正在为每个请求创建一个新连接。dbasync=asyncmongo.Client(pool_id='mydb',host='127.0.0.1',port=27017,maxcached=10,maxconnections=50,dbname='bench')@route('/readAsync')classReadAllAsynchHandler(tornado.web.RequestHandler):@tornado.web.asynchronousdefget(self):print("gettingses

python - 提取涉及 tornado.gen.Task 的异步代码

我有许多tornado.web.RequestHandler类,它们使用ID和访问key安全cookie测试授权访问。我使用gen.Task通过内联回调异步访问mongodb。由于其异步性,我无法找到一种方法来分解重复代码。我该怎么做?classMyHandler(RequestHandler):@tornado.web.asynchronous@gen.enginedefget(self):id=self.get_secure_cookie('id',None)accesskey=self.get_secure_cookie('accesskey',None)ifnotidornot

python - Tornado "error: [Errno 24] Too many open files"错误

我已经使用Tornado进行了大量工作,但这是我第一次遇到这种错误。我一直在研究一个非常基本的URL缩短器。URL由不同的应用程序放入数据库,这个应用程序只是从MongoDB存储中读取URL并重定向客户端。在我编写了基本代码之后,我针对它设置了一个简单的“围攻”测试,在围攻运行大约30秒后(使用siege-c64-t5m-r1http://example.com运行/MKy针对4个应用程序线程)我开始收到500个响应。查看错误日志我看到了这个;ERROR:root:500GET/MKy(127.0.0.1)2.05msERROR:root:ExceptioninI/Ohandlerfo

python - 如何使用 Python3.4 在 Tornado 中进行异步 mysql 操作?

我现在用的是Python3.4,想在Tornado中使用异步mysql客户端。我找到了torndb但是看了它的源码,我觉得它并不能做异步的mysql操作,因为它只是封装了MySQLdb包。那么有没有办法在Tornado中进行异步mysql操作呢? 最佳答案 将MySQL与tornado一起使用的规范方法是使用一组单独的进程与MySQL通信,并使用异步http请求与这些服务器通信(另请参见IsTornadoreallynon-blocking?中的答案#2)。这些进程可以在同一台机器上并使用tornado或其他地方的应用程序服务器。一

mysql - 是否有任何可在 Tornado 上用于支持事务的 MySQL 异步驱动程序/模块?

是否有任何可在Tornado上用于支持事务的MySQL异步驱动程序/模块?我正在用MySQL作为数据库编写Tornado应用程序。我用谷歌搜索并找到https://github.com/woshifyz/tornado-mysqlhttps://github.com/hybridlogic/txMySQL但不支持事务。 最佳答案 Tornado自己的数据库模块支持事务就好了。classApplication(tornado.web.Application):def__init__(self):handlers=[(r'/',some

python - Tornado Web 框架 Mysql 连接处理

我最近一直在探索Tornado网络框架,为许多不同的客户端提供大量一致的连接。我有一个请求处理程序,基本上采用RSA加密字符串并对其进行解密。解密的文本是一个XML字符串,由我编写的SAX文档处理程序解析。一切正常,执行时间(每个HTTP请求)大约为100毫秒(包括解密和解析)。XML包含用户的用户名和密码哈希。我想连接到MySQL服务器以验证用户名是否与应用程序提供的密码哈希匹配。当我基本上添加以下代码时:conn=MySQLdb.connect(host="192.168.1.12",user="",passwd="",db="")cursor=conn.cursor()safe_

python - 如何让 tornado TCPClient 使用代理(http 或 socks)?

我正在搜索如何构建代理池服务器,我问过aquestion关于那个。因为没人能给我提示,我开始自己找路。现在,我在github上找到了一个名为pyproxy的很好的代理示例,它使用了tornado。我认为这一行pyproxy/blob/master/pyproxy.py#L218是关键,它使用tornado.tcpclient.TCPClient().connect(host,int(port)连接目标站点。tornadoTCPClient不带代理参数,dochere.我需要TornadoTCPClient使用http(如果可能的话使用socks)代理连接目标站点,然后发回结果。我该怎么

python - 如何在 Tornado 应用程序中与 RabbitMQ(鼠兔库)通信

鼠兔库支持Tornado适配器,here是关于如何使用异步适配器发布消息的示例。我想在tornado应用中使用pika,举个例子,我想把tornado请求数据放到RabbitMQ,但是不知道怎么做。两个问题不知道怎么解决。1Pika使用tornadoadapter有自己的ioloop,self._connection=pika.SelectConnection(pika.URLParameters(self._url),self.on_connection_open)self._connection.ioloop.start()Tornado应用程序有自己的ioloop,tornado

python - Tornado 和 WTForms

我是第一次使用WTForms。在Tornado中使用WTForms验证POST请求以下是我的表格表单.pyclassUserForm(Form):user=TextField('user',[validators.Length(min=23,max=23)])在我的tonado处理程序中defpost(self):form=UserForm(self.request.body)我得到的错误信息是:formdata应该是一个支持'getlist'方法的multidict类型的包装器"我怎样才能使它工作? 最佳答案 wtforms-to

python - 有没有办法在不重启服务器的情况下使用 Tornado/Python 部署新代码?

我最近开始尝试使用Python和Tornado网络服务器/框架进行网络开发。以前,我在LAMP堆栈上使用PHP和我自己的框架。由于mod_php和Apache的交互方式,使用PHP,部署更新的代码/新代码就像将其上传到服务器一样简单。当我在Python/Tornado中添加新代码或更新代码时,是否需要重启Tornado服务器?如果您有大量活跃用户,我认为这是有问题的。(a)我是否必须重新启动服务器,或者有其他/更好的方法吗?(b)如果是这样,我怎样才能避免用户断开连接/出现错误/等等。在重新启动时(可能需要几秒钟)?[一个可能的想法是使用页面翻转范例,让Nginx指向一个服务器,用更新