推荐学习书目
› 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
ynkkdev
V2EX  ›  Python

Python 的 tcp 服务器解算数据后,数据入库的正确方式是什么?

  •  
  •   ynkkdev · Sep 6, 2019 · 3339 views
    This topic created in 2614 days ago, the information mentioned may be changed or developed.

    目前项目中有一个 python 编写的 TCP 服务器,需要接收到客户端数据后进行解码、分析,对分析的结果(比如客户端已经离线的消息)写入数据库。

    所以是要在写数据库的时候直接另起一个线程进行操作吗?或者有没有其他的更好的方式?

    8 replies  •  2019-09-08 05:25:25 +08:00
    Yourshell
    Yourshell
    Sep 6, 2019
    1
    异步
    lbp0200
    lbp0200
    Sep 6, 2019
    2
    python threadpool
    ynkkdev
    ynkkdev
    OP
    Sep 6, 2019❤️1
    3
    @Yourshell #1 所以 tcp 服务器算完数据,直接甩 rabbitmq,然后另外一个线程再来消费,写入数据库是不是也是以一个不错的办法?
    toono
    toono
    Sep 6, 2019
    4
    @youngce 我认为你说的是不错的做法,虽然说引入了 rabbitmq,但是对于执行进度和结果都可以按需监控到。如果直接用 threadpool 的话就需要自己设计如何保证任务执行的可靠性,对于人力成本来说还是存在的。
    ynkkdev
    ynkkdev
    OP
    Sep 6, 2019
    5
    @toono #4 是的,目前我就是这几个方案了,坐等大佬来给我建议了
    hspeed18
    hspeed18
    Sep 6, 2019❤️1
    6
    量不大的话同步写也不是不可以
    lolizeppelin
    lolizeppelin
    Sep 7, 2019
    7
    一般来说 要分数据收发线程和数据处理线程

    收发线程接收到完整的自定义协议包后,讲数据塞队列里,然后继续收数据

    数据处理线程从队列里取数据然后进行处理
    wd
    wd
    Sep 8, 2019 via iPhone
    8
    看你处理数据的时候是不是要 block 其他请求吧……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5270 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 03:18 · PVG 11:18 · LAX 19:18 · JFK 22:18
    ♥ Do have faith in what you're doing.