2

我们在 Heroku 中开发了一个 Rails 应用程序,我们有大约 3 个 web dynos 和 2-3 个 worker dynos。我们有一些导出和导入功能,这些功能使用了很多我们的工作人员测功机,当这种情况发生时,一切都崩溃了,我们在网站上收到一个应用程序错误。

Sentry 告诉我们这是由于超时。我们正试图找出我们软件的哪些功能占用了如此多的工作时间。问题是它影响了我们所有的用户,其中一些用户只使用 Web 层功能。

但我想知道,有没有办法将我们的工人测功机问题与网络测功机工作隔离开来?我的意思是,当一个用户导出大量数据并使工作人员饱和时,我们的网站是否不会崩溃?

提前致谢!

问候,贡萨洛

4

1 回答 1

0

谢谢你的回答,让我给你一些相关信息:
- 我们为工人使用delayed_job,这是异步的。
- 我们以前有一个 DB 连接,它支持 120 个连接,我们从未见过它完全繁忙。当前的 AWS RDS 仅达到其使用量的 24%,在崩溃当天我们仅看到 28 个并发连接。
- 新遗物没有在数据库中显示延迟。
- web dynos 开始在许多功能中产生超时,如果崩溃与工作人员无关,可能是因为某些功能不在工作中。

更新: - 我们对我们的出口设置了一些限制,即使是在工作中,这也会影响我们的网络并产生一些应用程序错误。当我们设置限制时,应用程序错误显着减少。
- 我们仍在寻找任何其他未优化的功能。

于 2018-05-16T20:26:35.960 回答