缓存你的数据
天气数据普遍具有时效性,对于不同的数据种类,时效性也有所不同。在你请求和风天气数据的时候,可以考虑设置弹性的、合理的缓存,这样可以有效降低服务器、带宽的消耗,加快用户的访问。
注意:缓存不是强制的要求,请认真阅读本文档,然后根据你的产品进行充分的评估,否则可能会对你的产品造成严重错误。如果你不确定,或者无法处理所有应用场景,请不要使用缓存。
警告:你不能缓存、提取、批量存储GeoAPI中提供的所有数据,这将违反我们的服务条款或侵犯版权,这些数据的版权所有者可能会对你采取法律行动。
合理性
对于时效性较强的数据,你不应该设置过长的缓存时间,例如实时天气,一天的温度变化较多,如果你设置超过了1小时的缓存,有可能造成用户在上午甚至中午查看到的是早上较为凉爽的气温。
提示:缓存数据与原数据的间隔时间最多相差2倍,例如你的缓存时间与和风天气的更新频率均为60分钟,和风天气在15:00发布了新的数据,用户从15:59开始访问你的产品,在16:59的时候用户通过你的缓存获取依然是15:00发布的原数据,在这种情况下,缓存数据与原数据的间隔时间达到了119分钟。
弹性
缓存应该是弹性的,你不应该为所有数据或在所有时间范围内设置相同的缓存策略,否则你的程序可能出现严重错误或崩溃,因此你需要特别注意:
- 跨小时和跨天的场景,否则用户可能无法查看到完整的天气数据,严重情况可能导致你的程序错误。
例如:对于逐天预报,用户在23:00使用了你的产品查看了7天预报,在第二天00:00之后,如果你不刷新缓存,用户看到的7天预报的第一天将变成前一天或者只剩下6天预报,极端情况下,你的程序还可能报错。
- 夏令时对缓存的影响,避免夏令时开始和结束的时刻发生时间显示错误的问题。
- 如果你在服务端采用缓存,需要注意时区的问题,每个国家会有不同的时区,你设置的弹性缓存应该确保在不同时区都可以正常工作。
清除缓存
你应该为你的程序设置一种可以立即清除缓存的功能,当出现错误的时候,可以通过清除缓存来实时的解决问题,而不需要重新发布新版本程序。
推荐的缓存时间
对于不同数据设置的缓存时间,我们推荐如下,当然更少的缓存时间可以获得更加及时的数据响应,还包括我们额外对数据进行的修复和优化。
注意:当已发布的数据需要进行修复时,我们会增加更新次数和更新频率。
注意:推荐的缓存时间并非适用于所有场景和需求,你应该根据你的产品进行评估。和风天气的数据发布频率也有可能会变更,我们会更新文档。
数据类型 | 推荐的缓存时间 | 和风天气的更新频率 |
---|---|---|
实时天气 | 10-30分钟 | 5-10分钟 |
逐小时天气预报 | 30-60分钟 | 60分钟 |
逐天天气预报 | 1-6小时 | 60分钟 |
天气预警 | 5-20分钟 | 3分钟 |
天气指数 | 6-12小时 | 60分钟 |
分钟降水 | 5-10分钟 | 5分钟 |
实时空气质量 | 30-60分钟 | 30-60分钟 |
空气质量逐天预报 | 8-12小时 | 1-6小时 |
潮汐和潮流 | 8-12小时 | 8小时 |
台风 | 活跃期 20分钟 非活跃期60分钟 |
10-60分钟 |
太阳辐照 | 6小时 | 3-6小时 |
限制
你不能缓存、提取、批量存储GeoAPI中提供的所有数据,这将违反我们的使用限制和服务条款。
GeoAPI中提供的数据内容来源于多个地理信息服务商,他们拥有不同的版权许可,大多数服务商(几乎是所有)许可你实时的使用,但禁止你将这些数据进行任何形式的存储,否则你可能会面临严重的法律风险。