【发布时间】:2023-03-21 00:17:02
【问题描述】:
我们正在构建一个网络应用程序,用户将在其中上传可能需要在后台处理的大文件。该任务涉及调用第 3 方 API,因此每个作业可能需要几个小时才能完成。我们使用 DelayedJob 来运行后台作业。每个用户启动一个后台作业,每一个都需要几个小时才能完成,这很快就会增加很多后台作业。我想知道为此设置部署的最佳方法是什么?我们目前托管在 DigitalOcean 上。我已经解雇了 10 名 DelayedJob 员工。每个(理想情况下)占用 157MB。主动运行时,它使用大约 900 MB。我们现在的用户群很小,所以这不是问题,但很快就会出现。所以在一个 4GB 的 droplet 上,我可能一次可以运行 2 或 3 个工人。我们应该如何处理这个问题?我们是否应该考虑使用 DigitalOcean 的 API 来按需自动旋转廉价的液滴?我们应该改为每月订阅高记忆液滴吗?如果我们使用自动旋转液滴,我们应该坚持使用 DigitalOcean 还是 Heroku 更有意义?或者整个方法是错误的,我们应该从一个完全不同的方向接近它吗?任何帮助/建议将不胜感激。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby delayed-job digital-ocean