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

发布于 2021-12-02 00:01:31 字数 239 浏览 911 评论 14

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

最偏执的依靠 2021-12-05 09:40:46

定时执行的时候检验上一次的数据,如果不同就去抓取新的数据,相同就等待,将数据高速缓存应该对性能影响不会太大,还有一种方式就是将数据切割成多个小块,分块检测

羁拥 2021-12-05 09:39:50

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

孤独患者 2021-12-05 09:39:15

对方网站并不在我们的控制范围内 所以主动推送和websocket等都不可以

清晨说ぺ晚安 2021-12-05 09:34:50

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

混吃等死 2021-12-05 09:26:36

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

永不分离 2021-12-05 09:21:54

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

奢望 2021-12-05 07:29:31

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

辞别 2021-12-05 07:28:25

目前是对方提供了数据接口,但是不愿意主动推送。

悲喜皆因你 2021-12-05 06:50:59

写一个爬虫定时爬取

吃颗糖壮壮胆 2021-12-05 04:55:52

对的

像你 2021-12-05 03:44:45

回复
可以把本地结果哈希一下,带着这个哈希值到了对方服务器把服务器的结果页哈希一下,两者结果对比,如果相同,说明对方结果没变化,你就不用获取数据返回,返回后也简单处理一下就行。这样就可以加大访问频率而不浪费资源。

虐人心 2021-12-04 21:54:52

本来这个网站更新的频率就不大 用那种一直跑的太浪费资源了

剑心龙吟 2021-12-04 16:54:31

回复
那就cronjob 8点启动脚本,10点之后脚本自己判断是否应该退出。你想要定时器一秒执行一次,不现实!

灵芸 2021-12-04 16:18:43

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文