关于实时获取网站数据的一个问题

一脸懵逼的码农 发布于 2017/07/13 18:42
阅读 448
收藏 1

解锁HarmonyOS核心技能,赢取限量周边好礼>>>

某个网站每天8点到10点间 每隔10分钟更新一次数据 但是并非准时更新(一般可能延迟几秒或者几分钟更新)。现在我这边想要实时获取该网站更新的数据。所以用了定时器8点到10点每隔十分钟发起请求获取网站数据  由于定时器只会准点请求 所以无法达到实时的效果 于是我想着从定时器开始请求时 如果没拿到数据就sleep一秒再请求 直到拿到数据为止   但是定时器里面用sleep好像存在一些问题   想问下大家有什么优雅的方案能解决这种问题。

加载中
0
岑臣
岑臣

写一个脚本在后台一直跑,有数据就操作,没数据就sleep

岑臣
岑臣
回复 @一脸懵逼的码农 : 那就cronjob 8点启动脚本,10点之后脚本自己判断是否应该退出。你想要定时器一秒执行一次,不现实!
一脸懵逼的码农
一脸懵逼的码农
本来这个网站更新的频率就不大 用那种一直跑的太浪费资源了
0
士别三日
士别三日
该评论暂时无法显示,详情咨询 QQ 群:912889742
士别三日
士别三日
回复 @一脸懵逼的码农 : 可以把本地结果哈希一下,带着这个哈希值到了对方服务器把服务器的结果页哈希一下,两者结果对比,如果相同,说明对方结果没变化,你就不用获取数据返回,返回后也简单处理一下就行。这样就可以加大访问频率而不浪费资源。
一脸懵逼的码农
一脸懵逼的码农
对的
0
开源中国首席罗纳尔多
开源中国首席罗纳尔多

写一个爬虫定时爬取

一脸懵逼的码农
一脸懵逼的码农
目前是对方提供了数据接口,但是不愿意主动推送。
0
我爱明月
我爱明月

可不可以通过触发一个script定时器脚本去请求php脚本,这样php每次执行完就会释放内存

0
太黑_thj
太黑_thj

如果能跟对方网站合作,就让对方主动给你们推送吧,如果不行,就只能定时轮询了,至于你愿意花多少资源区轮询,就看数据的重要性了,就像我们网站,重要数据轮询间隔200毫秒    不重要的10分钟

一脸懵逼的码农
一脸懵逼的码农
嗯 我也知道对方主动推送是最优方案,但是目前由于一些原因无法实现。 主要是对方的数据更新的频率并不高,是定时的却又不准时, 我这边的频率高了浪费资源 低了又达不到实时性,所以感觉很尴尬。
0
gaomq
gaomq

用websocket行不,双工通信。你们谁想给谁主动握手。

一脸懵逼的码农
一脸懵逼的码农
对方网站并不在我们的控制范围内 所以主动推送和websocket等都不可以
0
m
mzmlx2009

如果是你的网页要显示的话 可以每次有人请求你的网页的时候去抓取信息  不过肯定会慢点

0
WALKMAN2290
WALKMAN2290
定时执行的时候检验上一次的数据,如果不同就去抓取新的数据,相同就等待,将数据高速缓存应该对性能影响不会太大,还有一种方式就是将数据切割成多个小块,分块检测
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部