发送带有数组参数的1个POST请求或40个POST请求在DB中创建40个对象是否更好?

时间:2017-09-01 16:57:17

标签: ruby-on-rails postgresql http

我的客户端有一个功能,它将在DB中创建40个公寓对象,其中包含带有凭据的对象数组。我想知道在客户端发送的DB中创建40个对象的最佳方法是什么。将对象数组作为参数传递给POST HTTP请求并发送1 POST请求是否更好?或者更好地迭代对象数组,逐个向服务器发送40个POST请求? (旁注:服务器是使用带有Postgres的Ruby on Rails构建的)

2 个答案:

答案 0 :(得分:0)

如果您的应用程序网络使用率很高,请考虑前者,发送一个POST请求并在Rails上进行处理。另一方面,如果您缺乏计算资源(假设您没有使用任何并发网络服务器,例如Puma),请考虑第一种方法,因为可以提供更多客户端。

在我的生产应用程序中,我倾向于使用单个POST,因为我们可以处理多个用户,因此如果一个CPU忙于访问数据库,则仍然可以提供后续API调用,因为仍有足够的池。

再加上1个单一的POST,您可以将所有内容包装在单个原子操作中,如果s **击中风扇则回滚。

答案 1 :(得分:0)

这实际上基于您的用例,您是否需要回滚。 它不是黑白的,您可能会触发4个请求,每个请求包含10行 它更多地取决于您的有效负载(它有多重?)以及网络和处理能力。 关键是尚无具体答案,您需要考虑用例才能做出决定。