在做一个比价的小项目,希望每个用户可以设置自己关注的商品(对应一个后台请求地址,每一个地址又配置了多个平台的监控扫描地址,这个管理员配置),比如设置一个价格区间,系统能够自动扫描,当有商品进入价格区间时,自动给用户发消息提醒。
例如,有三个用户分别设置了对 a , b , c 商品的监控。将三条监控地址放入队列,定时 5 分钟一次的去查询,然后有信息就给用户推送信息提醒。但是,当用户量大的时候,比如有 10000 个以上监控列表,这时可能整个队列扫描完一次操作都将超过 5 分钟了。。。然而用户对这个时效性又是有要求的,
不能将扫描时间调的更大了,或者说扫描时间要缩短到一分钟一次甚至 30 秒(对于每个监控地址而言),这种情况应该用怎么解决好呢?
1
c742435 2015-08-25 17:02:37 +08:00
分布式?多搞几台机器扫
|
2
publicID001 2015-08-25 17:04:41 +08:00
阿里云 阿里云 阿里云
组集群 组集群 组集群 (重要的事情说三次 |
3
9hills 2015-08-25 17:13:55 +08:00
如果单机能搞定,就压 Queue ,多进程 /多线程去扫
单机搞不定,就压消息队列,多机器去扫。原理类似 Python 可以用 rq |
4
Tianpu 2015-08-25 17:14:47 +08:00 via iPhone
监控很多,需要队列吧
然后分配权重,关注多的刷新频率高,少的低 设置最高,最低,根据权重分配抓取时间间隔? 觉得半小时甚至半天更新一次都可以吧,一分钟更新一次价格不是很合理需求吧 |
5
Comdex 2015-08-25 23:33:17 +08:00
我想我在做的股票价格监控的话 30 秒查一次也不为过
|
9
dingyaguang117 2015-08-26 14:38:29 +08:00 via iPhone
我觉得楼主需要担心的是 购物平台会不会封你
代理应该是要的 |