正能量网站推荐,枣庄建设网站,四川住房和城乡建设厅进不去网站,宁波网站建能批量就不要并发。
如果调用方需要调用我们接口多次才能进行一个完整的操作#xff0c;那么这个接口设计就可能有问题。
比如获取数据的接口#xff0c;如果仅仅提供getData(int id)接口#xff0c;那么使用方如果要一次性获取 20 个数据#xff0c;它就需要循环遍历调用…能批量就不要并发。
如果调用方需要调用我们接口多次才能进行一个完整的操作那么这个接口设计就可能有问题。
比如获取数据的接口如果仅仅提供getData(int id)接口那么使用方如果要一次性获取 20 个数据它就需要循环遍历调用我们接口 20 次不仅使用方性能很差也无端增加了我们服务的压力这时提供一个批量拉取的接口getDataBatch(ListInteger idList)显然是必要的。
对于批量接口我们也要注意接口的吞吐能力避免长时间执行。
还是以获取数据的接口为例getDataList(ListInteger idList)假设一个用户一次传 1w 个id进来那么接口可能需要很长的时间才能处理完这往往会导致超时用户怎么调用结果都是超时异常那怎么办限制长度比如限制长度为 100即每次最多只能传 100 个 id这样就能避免长时间执行如果用户传的 id 列表长度超过 100 就报异常。
加了这样限制后必须要让使用方清晰地知道这个方法有此限制尽可能地避免用户误用。
有三种方法
改变方法名比如getDataListWithLimitLength(ListInteger idList)。在接口说明文档中增加必要的注释说明。接口明确抛出超长异常直白告知主调。