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

如何在短时间内扫描完成一个很大的监控列表呢?

  •  
  •   pythonfan · 2015-08-25 17:01:24 +08:00 · 2727 次点击
    这是一个创建于 3379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在做一个比价的小项目,希望每个用户可以设置自己关注的商品(对应一个后台请求地址,每一个地址又配置了多个平台的监控扫描地址,这个管理员配置),比如设置一个价格区间,系统能够自动扫描,当有商品进入价格区间时,自动给用户发消息提醒。
    例如,有三个用户分别设置了对 a , b , c 商品的监控。将三条监控地址放入队列,定时 5 分钟一次的去查询,然后有信息就给用户推送信息提醒。但是,当用户量大的时候,比如有 10000 个以上监控列表,这时可能整个队列扫描完一次操作都将超过 5 分钟了。。。然而用户对这个时效性又是有要求的,
    不能将扫描时间调的更大了,或者说扫描时间要缩短到一分钟一次甚至 30 秒(对于每个监控地址而言),这种情况应该用怎么解决好呢?

    10 条回复    2015-08-27 14:11:50 +08:00
    c742435
        1
    c742435  
       2015-08-25 17:02:37 +08:00
    分布式?多搞几台机器扫
    publicID001
        2
    publicID001  
       2015-08-25 17:04:41 +08:00
    阿里云 阿里云 阿里云
    组集群 组集群 组集群
    (重要的事情说三次
    9hills
        3
    9hills  
       2015-08-25 17:13:55 +08:00
    如果单机能搞定,就压 Queue ,多进程 /多线程去扫
    单机搞不定,就压消息队列,多机器去扫。原理类似

    Python 可以用 rq
    Tianpu
        4
    Tianpu  
       2015-08-25 17:14:47 +08:00 via iPhone
    监控很多,需要队列吧

    然后分配权重,关注多的刷新频率高,少的低

    设置最高,最低,根据权重分配抓取时间间隔?

    觉得半小时甚至半天更新一次都可以吧,一分钟更新一次价格不是很合理需求吧
    Comdex
        5
    Comdex  
       2015-08-25 23:33:17 +08:00
    我想我在做的股票价格监控的话 30 秒查一次也不为过
    pythonfan
        6
    pythonfan  
    OP
       2015-08-26 10:59:24 +08:00
    @9hills 多谢,我去看看 rq ,前期先用单机吧
    pythonfan
        7
    pythonfan  
    OP
       2015-08-26 11:01:21 +08:00
    @Tianpu 一分钟甚至更短,主要是满足一些抢单的需求。。。
    pythonfan
        8
    pythonfan  
    OP
       2015-08-26 11:06:45 +08:00
    @Comdex 股票价格这种是查的哪里?有没有官方接口的?
    dingyaguang117
        9
    dingyaguang117  
       2015-08-26 14:38:29 +08:00 via iPhone
    我觉得楼主需要担心的是 购物平台会不会封你

    代理应该是要的
    Comdex
        10
    Comdex  
       2015-08-27 14:11:50 +08:00
    @pythonfan 新浪的 JS 接口
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:21 · PVG 03:21 · LAX 11:21 · JFK 14:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.