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

2015-08-25 17:01:24 +08:00
 pythonfan

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

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

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

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

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

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

代理应该是要的
Comdex
2015-08-27 14:11:50 +08:00
@pythonfan 新浪的 JS 接口

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

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

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

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

© 2021 V2EX