在Heroku上为Rails应用程序设置后端服务器

时间:2012-04-15 21:15:49

标签: ruby-on-rails heroku backend

我在Heroku中托管了一个Rails 3.0应用程序。我想设置一个不同的Rails服务器来运行繁重的后端作业(扫描用户配置文件,项目并创建建议并将它们存储在Redis数据库中),以便它:

  • 不会阻塞我的前端服务器(即,如果我在同一个前端Rails服务器上运行后端进程,则需要更长的时间来响应用户的请求等)。
  • 允许我使用Rails类和方法

我的理解是:

  • 添加更多工作人员dynos不会分离前端和后端流程
  • 添加Whenever或Delayed_Job gems不允许我在单独的后端服务器上运行。

我认为Rails会定期出现这种情况。我应该怎么做呢?

非常感谢。

1 个答案:

答案 0 :(得分:1)

  • “阻塞”“前端数据库”是什么意思?你可能只有一个常规数据库,你应该实现缓存和深思熟虑的查询,以避免对它征税。使用Resque with Redis可以避免向SQL数据库添加负载。
  • 通过加载环境,您可以在rake任务中访问“Rails类和方法”。例如:task :do_this => :environment { ... }
  • 每个dyno都独立于其他所有dyno,无论是web worker(可用于HTTP请求)还是worker dynos(用于其他任何东西)。

你真的只需要创建rake任务并将任何其他服务(如Clockwork)添加到Procfile(仅限Cedar堆栈),以便在Heroku上运行。