适用模块/版本

数据服务

具体说明

背景:客户反馈某个api调用,入参:page_size为300时,调用返回结果是其他表的数据。 Ticket-36697: 【中交信捷】数据服务api调用返回异常数据 https://overmind-project.netease.com/v2/my_workbench/ticketdetail/Ticket-36697

请求api一致,header信息一致,只有请求体body处的page_size为300时会触发

INFO-调用api返回异常数据 - 图1

INFO-调用api返回异常数据 - 图2

经排查发现,平台测试始终正常,日志无异常信息。但客户修改过此api的查询表,且开启了168小时的缓存。特定参数的查询命中了之前的缓存结果,导致返回结果异常。平台上的api调用测试不走缓存逻辑,所以没有触发客户反馈的问题场景

INFO-调用api返回异常数据 - 图3

此处的缓存逻辑:

1、每次查询参数和返回数据都进行缓存

2、如果新的查询参数与缓存中的查询参数一致,就会返回上次缓存中这个查询参数所查询的数据。

使用示例

建议:以天为维度更新的表建议开启缓存,更换api查询表后清除缓存。实时更新的数据不建议开启缓存。