草庐IT

sockjs-tornado

全部标签

python - Flask 和/或 Tornado - 处理对外部网络服务的耗时调用

我有一个flask应用程序,它通过给定的URL连接到外部服务(具有不同但通常很长的响应时间)并在那里搜索一些东西。之后,对检索到的数据进行一些CPU繁重的操作。这也需要一些时间。我的问题:来自外部的响应可能需要一些时间。你对此无能为力,但当你同时有多个请求时,它会成为一个大问题-对外部服务的flask请求会阻塞线程,其余的正在等待。明显是在浪费时间,而且它正在杀死应用程序。我听说过这个名为Tornado的异步库。还有我的问题:这是否意味着它可以设法处理多个请求并在外部响应后立即触发回调?我可以用我当前的Flask应用程序实现这一点吗(我猜可能不是因为WSGI?)或者我可能需要将整个应用

python - Tornado 异步调用一个函数

我正在使用Python+Tornado制作一个Web应用程序,它基本上为用户提供文件服务。我没有数据库。如果文件可用,则直接获取并提供这些文件,如果不可用,则即时生成。我希望以异步方式为客户端提供服务,因为一些文件可能已经可用,而其他文件需要生成(因此他们需要等待,我不希望他们阻止其他用户)。我有一个管理文件的选择或生成的类,我只需要从Tornado调用它。实现该目标的最佳方式(对CPU和RAM的效率最高)是什么?我应该使用线程吗?子进程?一个简单的gen.Tasklikethisone?此外,我希望我的实现能够在GoogleAppEngines上运行(我认为它们不允许生成子进程?)。

python - 获取 Python Tornado 版本

如何获取我的PythonTornado模块版本的当前版本?对于其他包,我可以执行以下操作:print.__version__来源:HowtocheckversionofPythonmodules 最佳答案 Tornado既有tornado.version,它是供人类使用的字符串(当前为“4.2”),也有tornado.version_info,它是一个数字元组,它是更适合编程比较(当前(4,2,0,0))。version_info的第四个值对于beta版和其他预发布版将是负值。 关于py

python - 如何将 Tornado 日志存储到文件中?

我一直面临这样的问题:如果连续30分钟未访问API,我的服务器就会抛出500。为了检查问题,我需要跟踪发出的每个API请求。我在Flask前使用Tornado。到目前为止,这是我的代码:importtornado.httpserverimporttornado.ioloopimporttornado.webfromflaskyimportappfromtornado.wsgiimportWSGIContainerfromtornado.ioloopimportIOLoopfromtornado.webimportFallbackHandlerfromtornado.logimporte

python - 在常规 python 脚本中使用 Tornado 异步代码

我有一些使用tornadogen.coroutine的异步函数我通常将其用作基于Tornado的Web应用程序的一部分。但是,我想从普通的旧python脚本中调用其中一些来执行一些管理任务。我该怎么做?fromtornadoimportgenimportsome_internal_stuff@gen.coroutinedefmyfunc(x):y=yieldsome_internal_stuff.another_async_func(x)raisegen.Return(y)if__name__=="__main__":#WhatdoIputheretocallmyfunc(1)andg

python - 与 Django 的 Tornado

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我正在开发Django项目(RSS和Tweet聚合器)如何在这个项目中使用tornado和django(我只需要表格Tornado同步“实时更新功能”)如何将djangoorm和django表单与tornado一起使用tohmmtodoTornado让事情变得更简单

python - 带有 Tornado 的 Websockets : Get access from the "outside" to send messages to clients

我开始使用WebSockets作为将数据从服务器推送到连接的客户端的方法。由于我使用python来编写任何类型的逻辑,所以到目前为止我一直在研究Tornado。下面的代码片段显示了可以在Web上随处找到的最基本的示例:importtornado.httpserverimporttornado.websocketimporttornado.ioloopimporttornado.webclassWSHandler(tornado.websocket.WebSocketHandler):defopen(self):print'newconnection'self.write_message

python - Tornado 代码部署

基于tornado的web应用部署是否有规范的代码部署策略。我们当前的配置是在NginX后面运行4个tornado进程?(我们的具体用例在EC2后面。)我们目前有一个运行良好的解决方案,我们可以启动四个Tornado进程并将PID保存到/tmp/中的文件中。部署新代码后,我们通过fabric运行以下序列:从prod分支执行gitpull。从负载平衡器中删除机器。等待所有航类转机结束后进入休眠状态。杀死pid文件中的所有Tornado并删除所有*.pyc文件。重新启动Tornado。将机器连接回负载平衡器。我们从中得到了一些启发:http://agiletesting.blogspot.

python - cherrypy 是如何工作的?当并发率低时,与 Tornado 相比,它可以很好地处理请求

我对cherrypy(使用web.py作为框架)和tornado从互联网上检索网页进行了测试。我有三个测试用例使用siege向服务器发送请求(-c表示用户数;-t是测试时间)。代码在测试结果下方。1。web.py(cherrpy)siegeip-c20-t100sservercanhandle2747requestssiegeip-c200-t30sservercanhandle1361requestssiegeip-c500-t30sservercanhandle170requests2。Tornado同步siegeip-c20-t100sservercanhandle600requ

python - 混合 Tornado 和sqlalchemy

我正在尝试编写一个在某些请求处理程序中使用sqlalchemy的TornadoWeb应用程序。这些处理程序有两个部分:一个需要很长时间才能完成,另一个使用sqlalchemy并且速度相对较快。我想让请求的慢速部分异步,而不是sqlalchemy部分。我可以执行类似以下代码的操作并且安全吗?classExampleHandler(BaseHandler):asyncdefpost(self):loop=asyncio.get_event_loop()awaitloop.run_in_executor(...)#veryslow(nosqlalchemyhere)withself.db_s