太多请求activerecord

hlswsv35  于 2021-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(419)

我在一行中插入大约4000-5000条记录,平均每个插入请求在1毫秒内连续发送,直到添加所有记录。整个导入被 Package 在一个事务中。作业失败,出现以下错误:

ActionView::Template::Error (Failed.  Response code = 429.  Response message = Too Many Requests.):

我已将错误追溯到model.create语句。我知道使用activerecord无法一次插入多个记录,所以有可能在短时间内增加请求量吗?或者,我必须使用gem一次插入多条记录吗?i、 e.activerecord导入
我很确定,如果捕获到actionview::template::error并在重试前后退几秒钟,它会正常工作,但是还有其他方法吗?

kiayqfof

kiayqfof1#

事实证明,这个错误与我们自己的服务器无关。我们进口的其中一件是shopify的。在监视http流量之后,我意识到,当您获得一个订单,并尝试获取与该订单相关的事务时,这是一个额外的请求。所以,我们试图让太多的请求,并达到他们的api限制。

lx0bsm1f

lx0bsm1f2#

这通常发生在一个方法本身以递归方式调用另一个方法时。
所以如果我有 redirect_to 在一个动作中再次发出 redirect_to 到相同的操作..所以反过来这会导致太多的请求错误。。
这同样适用于渲染 partials 它本身有一个部分呈现父视图,父视图呈现子视图部分,子视图也呈现父视图的部分…所以这就变成了一个递归循环。
希望有帮助:)

ui7jx7zq

ui7jx7zq3#

你考虑过用背景工作来完成这个任务吗?根据所使用的数据库,可以同时插入新数据。

相关问题