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

说个 tornado 在秒杀之类场景上的使用吧

  •  
  •   sujin190 ·
    snower · Mar 11, 2016 · 4809 views
    This topic created in 3854 days ago, the information mentioned may be changed or developed.
    如果使用 tornado 之类的异步 io 框架,配合外部同步锁服务,似乎可以轻易实现原来面对秒杀之类瞬间高并发需要队列系统才能实现的场景了,外部共享锁服务因为协议简单, 10 万以上并发几乎可以轻松实现,锁空闲是通知需要锁的 tornado 进程,排队,高并发都有了,方便多了啊,各位怎么看?
    5 replies  •  2016-03-13 09:49:10 +08:00
    em3rge
        1
    em3rge  
       Mar 11, 2016
    talk is cheap..
    sujin190
        2
    sujin190  
    OP
       Mar 11, 2016
    @em3rge 现在我们支付就已经这么做了,方便很多
    xiamx
        3
    xiamx  
       Mar 12, 2016
    有没有产生 deadlock 的可能?
    sujin190
        4
    sujin190  
    OP
       Mar 12, 2016
    @xiamx 所以在设计同步锁的时候要有两个参数,一个是等待最大时间紧,另一个是锁保持最大时间,超过等待最大时间则获取锁超时,超过锁保持的最大时间则获取的锁要自动释放,一般来说超过平均处理时间数倍也就没问题了,这样既可以保持同步,又可以在程序异常时不出现死锁
    xiamx
        5
    xiamx  
       Mar 13, 2016
    @sujin190 超时锁释放后服务端保证 transaction atomicity 这块写起来也挺麻烦的吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2514 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    ♥ Do have faith in what you're doing.