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
sujin190
V2EX  ›  Python

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

  •  
  •   sujin190 ·
    snower · 2016-03-11 21:09:36 +08:00 · 3602 次点击
    这是一个创建于 2972 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果使用 tornado 之类的异步 io 框架,配合外部同步锁服务,似乎可以轻易实现原来面对秒杀之类瞬间高并发需要队列系统才能实现的场景了,外部共享锁服务因为协议简单, 10 万以上并发几乎可以轻松实现,锁空闲是通知需要锁的 tornado 进程,排队,高并发都有了,方便多了啊,各位怎么看?
    5 条回复    2016-03-13 09:49:10 +08:00
    em3rge
        1
    em3rge  
       2016-03-11 22:39:44 +08:00
    talk is cheap..
    sujin190
        2
    sujin190  
    OP
       2016-03-11 23:28:42 +08:00
    @em3rge 现在我们支付就已经这么做了,方便很多
    xiamx
        3
    xiamx  
       2016-03-12 06:39:43 +08:00
    有没有产生 deadlock 的可能?
    sujin190
        4
    sujin190  
    OP
       2016-03-12 10:24:34 +08:00
    @xiamx 所以在设计同步锁的时候要有两个参数,一个是等待最大时间紧,另一个是锁保持最大时间,超过等待最大时间则获取锁超时,超过锁保持的最大时间则获取的锁要自动释放,一般来说超过平均处理时间数倍也就没问题了,这样既可以保持同步,又可以在程序异常时不出现死锁
    xiamx
        5
    xiamx  
       2016-03-13 09:49:10 +08:00
    @sujin190 超时锁释放后服务端保证 transaction atomicity 这块写起来也挺麻烦的吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2338 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:51 · PVG 16:51 · LAX 01:51 · JFK 04:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.