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

分布式爬虫如何一直从队列里面取数据,不间断

  •  
  •   Ewig · 2018-12-06 16:10:24 +08:00 · 1832 次点击
    这是一个创建于 2183 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为运营部门一直放数据到队列, 我一直获取数据,然后从队列里面爬数据,所以如何不间断的从队列里面取数据呢?

    3 条回复    2018-12-06 16:53:50 +08:00
    lihongjie0209
        1
    lihongjie0209  
       2018-12-06 16:14:48 +08:00
    一般消息队列都提供阻塞调用的. 比如说;


    mq.get("queueName"); // 这个调用会阻塞



    那么你就可以写一个线程来轮询



    while true{

    message = mq.get("queueName");

    process(message) // 这里处理业务逻辑

    }
    15399905591
        2
    15399905591  
       2018-12-06 16:26:56 +08:00
    你们用的是什么消息组件呢? 并且既然是队列,为什么会要不间断获取数据,你的任务执行期间是不需要阻塞的嘛?
    Itoktsnhc
        3
    Itoktsnhc  
       2018-12-06 16:53:50 +08:00
    一个模块轮询外部 Queue,一个模块处理,简单点每来一个消息就创建新的线程处理,或者之间用 Queue 连接
    做的好一点应该可以控制处理模块的并发度呀,待处理任务 Queue 的长度等指标。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:10 · PVG 23:10 · LAX 07:10 · JFK 10:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.