Tornado Web服务器多进程启动的2个方法

一、Tornado简介

Tornado 是 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个理想框架。

二、多进程启动方法

正常启动方法:

代码如下:

server = HTTPServer(app)
server.listen(8888)
IOLoop.instance().start()

多进程、方案1:

代码如下:

server = HTTPServer(app)
server.bind(8888)
server.start(0)  # Forks multiple sub-processes
IOLoop.instance().start()

多进程、方案2:

代码如下:

sockets = tornado.netutil.bind_sockets(8888)
tornado.process.fork_processes(0)
server = HTTPServer(app)
server.add_sockets(sockets)
IOLoop.instance().start()

(0)

相关推荐

  • tornado捕获和处理404错误的方法

    Tornado 文档中提到但是这样只能捕获到handlers中列出的路径请求中的错误. 如果只定义了(r"/hello", HelloHandler) 一条规则,那么只能捕获到 /hello/other,这样的未定义路径请求,而像/he./helloworld./he/other这样的会直接显示Tornado默认的404错误页面,而不会显示自定义的错误页面. 解决方法很简单只需要在路由规则的最后加一条(r".*", BaseHandler),用于捕获未被其他规则捕获

  • 使用基于Python的Tornado框架的HTTP客户端的教程

    由于tornado内置的AsyncHTTPClient功能过于单一, 所以自己写了一个基于Tornado的HTTP客户端库, 鉴于自己多处使用了这个库, 所以从项目中提取出来, 写成一个单独库 tornadohttpclient TornadoHTTPClient 是一个基于Tornado的高效的异步HTTP客户端库, 支持Cookie和代理, 目前仅在Python2.7平台上测试过, 不支持Python3 听取了仙子君的意见, 直接对tornado.curl_httpclient.CurlAs

  • tornado框架blog模块分析与使用

    复制代码 代码如下: #!/usr/bin/env python## Copyright 2009 Facebook## Licensed under the Apache License, Version 2.0 (the "License"); you may# not use this file except in compliance with the License. You may obtain# a copy of the License at##     http://

  • Python Web服务器Tornado使用小结

    首先想说的是它的安全性,这方面确实能让我感受到它的良苦用心.这主要可以分为两点: 一.防范跨站伪造请求(Cross-site request forgery,简称 CSRF 或 XSRF) CSRF 的意思简单来说就是,攻击者伪造真实用户来发送请求. 举例来说,假设某个银行网站有这样的 URL:http://bank.example.com/withdraw?amount=1000000&for=Eve当这个银行网站的用户访问该 URL 时,就会给 Eve 这名用户一百万元.用户当然不会轻易地点

  • Python(Tornado)模拟登录小米抢手机

    今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视--看了一下小米的抢购流程,似乎可以用程序可破.于是想写点东西玩玩(你懂的--),第一步肯定是先得模拟登录小米帐号,当练手吧.用 Python 来实现吧,由于是写一个Web应用,那么框架就选 Tornado.首先是定义应用的 URL: 复制代码 代码如下: def main():    tornado.options.parse_command_line()    application = tornado.web.Appli

  • Python的Tornado框架的异步任务与AsyncHTTPClient

    高性能服务器Tornado Python的web框架名目繁多,各有千秋.正如光荣属于希腊,伟大属于罗马.Python的优雅结合WSGI的设计,让web框架接口实现千秋一统.WSGI 把应用(Application)和服务器(Server)结合起来.Django 和 Flask 都可以结合 gunicon 搭建部署应用. 与 django 和 flask 不一样,tornado 既可以是 wsgi 应用,也可以是 wsgi 服务.当然,选择tornado更多的考量源于其单进程单线程异步IO的网络模

  • Python的Tornado框架实现图片上传及图片大小修改功能

    图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 type="file" 指定上传类型. <form action="/" enctype="multipart/form-data" method="post"> <input type="file&

  • 简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, 今天就简单介绍下 Tornado 协程实现原理, Tornado 的协程是基于 Python 的生成器实现的, 所以首先来回顾下生成器. 生成器 Python 的生成器可以保存执行状态 并在下次调用的时候恢复, 通过在函数体内使用 yield 关键字 来创建一个生成器, 通过内置函数 next 或生

  • python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)

    测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动,单进程,并且关闭DEBUG,请求均只返回一个字符串ok. tornado直接自己启动,其他内容一致. 测试软件为 siege,测试os为cenos6 64位,测试命令为: 复制代码 代码如下: siege -c 100 -r 100 -b http://127.0.0.1:5000/ django

  • Tornado Web服务器多进程启动的2个方法

    一.Tornado简介 Tornado 是 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个理想框架. 二.多进程启动方法 正常启动方法: 复制代码 代码如下: server = HTTPServer(app)

  • linux服务器开机启动oracle的设置方法

    1.首先切换到Oracle用户 [oracle@oracletest ~]$ cd /u01/app/oracle/product/11.2.0/db_1/bin/ -----标红字体部分数据库可能不一样,有的是dbhome_1,以自己实际配置目录为准 [oracle@oracletest bin]$ vi dbstart LOGMSG="logger -puser.alert -s " trap 'exit' 1 2 3 # for script tracing case $ORAC

  • 无法在Web服务器上启动调试。未将项目配置为进行调试

    第一种: 如果你使用的是WinXP或者Win2kPro版的系统,你不会出现这个问题,因为你只能把网站放在C:\intpub\wwwroot目录下,这个目录默认的是http://localhost,是本地站点目录,不需要任何设置就可以调试.如果你是Win2kServer版本,想尽快解决这个问题,你使用IIS管理器把你的解决方案目录变成localhost的一个虚拟目录即可,立即可以进行调试,不过你必须用管理员身份登录. 第二种: 使用系统W:Win2kServer,使用IIS直接定义的网站.步骤如下

  • Tornado Web服务器中处理空白字符的解决方案

    Tornado模板引擎一直有一个坑,有时候你可能觉得并不影响正常使用,但强迫症就是受不了:模板会去掉每行前后的空格. 最后出来的页面就是这样: 不缩进真的很影响心情的好吧,特别是对一个python开发者. 国外一些Q&A对这个情况也有一些讨论,其中提到比较多的就是compress_whitespace.在github找到一个issue:https://github.com/tornadoweb/tornado/issues/178,就是在抱怨空白字符的问题.空白字符在<pre>中被去除

  • Web服务器IIS6的PHP最佳配置方法

    IIS6的PHP最佳配置方法 本文收藏自网络,本人还没有试过,不知如何,现在PHP版本已经到了5.2了.读者应该找找新的文章,本人自已搭建了一个Apache+PHP+Mysql+Mysqladmin平台,只用做学习用,还没真正实战过.!!! 虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP.ASP.ASP.NET.JSP.Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好.网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法

  • eclipse部署tomcat服务器无法启动问题的解决方法

    解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题,我相信我的方法已经能帮90%的人解决了! 当你用Eclipse运行web项目的时候,你就会看到控制台出现: WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:firstProject

  • 如何用PHP来实现一个动态Web服务器

    要是现实一个 web 服务器,那么就需要大概了解 web 服务器的运行原理.先从静态的文本服务器开始,以访问 web 服务器的1.html为例 1.客户端通过发送一个 http 请求到服务器,如果服务器监听的端口号是9002,那么在本机自身测试访问的地址就是http://localhost:9002/1.html. 2.服务器监听着9002端口,那么在收到请求了请求之后,就能从 http head 头中获取到请求里需要访问的 uri 资源在web 目录中的位置. 3.服务器读取需要访问的资源文件

  • 基于php在各种web服务器的运行模式详解

    一.php在apache中运行模式 php在apache中一共有三种工作方式:CGI模式.FastCGI模式.Apache 模块DLL以下分别比较:1. CGI模式与模块模式比较:php在apache中两种工作方式的区别(CGI模式.Apache 模块DLL)这两种工作方式的安装:PHP 在 Apache 2.0 中的 CGI 方式ScriptAlias /php/ "c:/php/"AddType application/x-httpd-php .php# 对 PHP 4 用这行Ac

  • PHP实现动态web服务器方法

    以下内容通过图文并茂的方式介绍php实现动态web服务器的方法,具体内容如下: 本文所实现的服务器仅仅是演示和理解原理所用,力求简单易懂.有兴趣的朋友可以继续深入改造 要是现实一个 web 服务器,那么就需要大概了解 web 服务器的运行原理.先从静态的文本服务器开始,以访问 web 服务器的1.html为例 1.客户端通过发送一个 http 请求到服务器,如果服务器监听的端口号是9002,那么在本机自身测试访问的地址就是 http://localhost:9002/1.html . 2.服务器

  • Linux Apache Web 服务器终极教程

    APACHE系统介绍 根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务器都在使用Apache,是世界排名第一的WEB服务器.Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache. Apache的主要特征是: . 可以运行上所有计算机平台: . 支

随机推荐