V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sbmzhcn
V2EX  ›  Python

gevent + tornado 可以一个做底层信息采集 ,另外一个当作 web 服务器吗?

  •  
  •   sbmzhcn · 2015-08-27 15:44:10 +08:00 · 2972 次点击
    这是一个创建于 3401 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有一个项目,使用是 tcp 通信,采集数据,用的是 socket ,数据采集好后保存到数据库中。 但需要做一个网页端的界面,可以直接做个网页从数据库中读取数据就行,这是一个方法。

    能不能把 http 服务器与 socket 采集程序集成到一起。

    socket 用 gevent 端口 1111
    tornado 当作 http 服务器 端口 2222

    请问如果这样操作怎么弄,查了相关文档也没有头绪。
    7 条回复    2015-08-28 11:04:27 +08:00
    yuelang85
        1
    yuelang85  
       2015-08-27 16:25:23 +08:00
    可以的。

    首先你查下 tornado on gevent 。也就是 tornado 架设到 gevent 上, gevent 提供高并发支持。

    然后在 gevent 启动 web 服务主循环之前,用 threading (其实是 gevent monkey patch 过的多线程)启动一个 socket 服务的线程。

    这样就可以同时监听两个端口,使用两个服务了
    kier
        2
    kier  
       2015-08-27 16:28:27 +08:00
    直接用 tornado 就可以啊,没必要再用 gevent ,记住, tornado 不只是一个 web 框架
    sbmzhcn
        3
    sbmzhcn  
    OP
       2015-08-27 17:18:36 +08:00
    一个没有问题,我知道。我问的最主要的问题,是怎么集成到一块。 tcp server 和 http server 可以互相通信,比如一些变量可以互相使用。
    lovedboy
        4
    lovedboy  
       2015-08-27 17:38:53 +08:00
    @kier tornado 的 yield 或者 callback 太难写。。 233333333
    mengzhuo
        5
    mengzhuo  
       2015-08-27 18:06:46 +08:00
    数据都落地了,再开一个程序取出来
    非要两程序在同一个进程的话……
    可以共享一些全局变量(我司不少内部工具都是这德行)
    zsmjcnm
        6
    zsmjcnm  
       2015-08-27 22:38:51 +08:00
    233333333
    zhouquanbest
        7
    zhouquanbest  
       2015-08-28 11:04:27 +08:00
    完全可以只用 Tornado
    如果用 py3 Tornado 写起来会舒服很多 至少不用 raise gen.Return ()了 可以直接 return
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3498 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.