如何在heroku上将工作人员dynos与web dynos隔离?

时间:2018-05-05 00:26:54

标签: ruby-on-rails heroku crash worker dyno

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

Sentry告诉我们这是由于超时。我们正试图找出我们软件的哪些功能正在耗费大量的工作时间。问题是它会影响我们所有的用户,其中一些用户只使用网络层功能。

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

提前致谢!

此致 贡萨洛

1 个答案:

答案 0 :(得分:0)

谢谢你的回答,让我给你一些相关的信息:
- 我们对工人使用delayed_job,这是异步的 - 我们之前曾经有过DB连接,它支持120个连接,我们从未看到它完全忙碌。目前的AWS RDS仅达到其使用的24%,我们在崩溃当天只看到了28个并发连接 - New Relic没有表明DB的延迟 - 网络dynos开始在许多功能中产生超时,如果崩溃与工作人员无关,可能是因为某些功能不在工作中。

更新: - 我们已经在我们的出口中设置了一些限制,即使这些限制在工作中,这也影响了我们的网络并给出了一些应用程序错误。当我们设置限制时,应用程序错误会大大减少 - 我们仍在搜索任何其他未经优化的功能。