我目前有一个用于我的项目的API和一个负责将导出文件生成为CSV的服务,存档并将它们存储在云中的某个位置.
由于我的API是用Rails编写的,而我的服务是用纯Ruby编写的,因此我在服务中使用Her gem来与API进行交互.但是我发现我当前的实现性能较差,因为我Model.all
在我的服务中执行了操作,这反过来又触发了一个请求,该请求可能包含响应中的太多对象.
我很好奇如何改进这项整个任务.这就是我的想法:
在API级别实现分页并Model.where(page: xxx)
从我的服务调用;
在API级别生成实际CSV并将CSV发送回服务(这可以完成同步或异步).
如果我要使用第一种方法,每页应该检索多少个对象?回复应该有多大?
如果我使用第二种方法,这将给请求带来相当大的开销(我猜API请求不应该花那么长时间),我也想知道这是否真的是API的工作.
我应该遵循什么方法?或者,有什么比我更缺的东西?