我们在Heroku开发了一个Rails应用程序,我们有大约3个网络动力学和2-3个工作人员动态。我们有一些导出和导入功能,使用了很多我们的工作人员dynos,当发生这种情况时,一切都崩溃,我们在网站上收到应用程序错误。
Sentry告诉我们这是由于超时。我们正试图找出我们软件的哪些功能正在耗费大量的工作时间。问题是它会影响我们所有的用户,其中一些用户只使用网络层功能。
但是我想知道,有没有办法将我们的工作人员dyno问题与网络dynos工作隔离开来?我的意思是,当一个用户导出大量数据并使工作人员饱和时,有没有办法让我们的网站不崩溃?
提前致谢!
此致 贡萨洛
答案 0 :(得分:0)
谢谢你的回答,让我给你一些相关的信息:
- 我们对工人使用delayed_job,这是异步的
- 我们之前曾经有过DB连接,它支持120个连接,我们从未看到它完全忙碌。目前的AWS RDS仅达到其使用的24%,我们在崩溃当天只看到了28个并发连接
- New Relic没有表明DB的延迟
- 网络dynos开始在许多功能中产生超时,如果崩溃与工作人员无关,可能是因为某些功能不在工作中。
更新:
- 我们已经在我们的出口中设置了一些限制,即使这些限制在工作中,这也影响了我们的网络并给出了一些应用程序错误。当我们设置限制时,应用程序错误会大大减少
- 我们仍在搜索任何其他未经优化的功能。