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

2018-12-06 16:10:24 +08:00
 Ewig

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

1756 次点击
所在节点    Python
3 条回复
lihongjie0209
2018-12-06 16:14:48 +08:00
一般消息队列都提供阻塞调用的. 比如说;


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



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



while true{

message = mq.get("queueName");

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

}
15399905591
2018-12-06 16:26:56 +08:00
你们用的是什么消息组件呢? 并且既然是队列,为什么会要不间断获取数据,你的任务执行期间是不需要阻塞的嘛?
Itoktsnhc
2018-12-06 16:53:50 +08:00
一个模块轮询外部 Queue,一个模块处理,简单点每来一个消息就创建新的线程处理,或者之间用 Queue 连接
做的好一点应该可以控制处理模块的并发度呀,待处理任务 Queue 的长度等指标。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/515007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX