1
我有一个在Heroku中托管的Rails 3.0应用程序。我想建立一个不同的Rails的服务器来运行重后端作业(扫描用户配置文件,项目和创建的建议,并将它们存储在Redis的数据库),使其:在Heroku上为Rails应用程序设置后端服务器
- 不会堵塞我的前末端服务器(即,如果我同一个前端Rails的服务器上运行的后端进程,这将需要更长的时间来响应用户的请求等)
- 让我有Rails的类和方法
我的理解是:
- 添加更多工人代理将不会分离前端和后端进程
- 添加When或Delayed_Job gems将不允许我在单独的后端服务器上运行。
我认为这种情况应该定期为Rails出现。我应该怎么做呢?
非常感谢。
非常感谢!其实我的意思是“堵塞我的前端服务器”。我的意思是:如果我需要在相同的Rails前端服务器上运行大量的工作,比如索引,匹配对象,它会减慢我的前端服务器。这就是为什么我想建立一个独立的后端服务器的原因。在这里添加一个worker dynos将无济于事,因为如果计划的索引作业运行,它可能会占用所有的dynos。现在,对于我的后端服务器,我想要访问所有的Rails功能(即,我应该能够从ActiveRecord等继承) – AdamNYC 2012-04-15 22:18:23
工作人员在单独的进程中运行dynos - 因此它们不会影响前端。然而,你必须考虑你的数据库,就好像这两个应用程序共享那么这可能是你的瓶颈。 – 2012-04-16 08:21:11
你不了解Heroku的工作方式。单个进程不会运行多个dynos。无论上下文还是任务,dyno都会运行应用程序的单个实例。处理HTTP请求是像Sinatra和Rails这样的框架处理的一项任务,但您也可以在通过'heroku run ...'触发的单独的dynos中运行一次性Ruby脚本。 Heroku没有服务器的概念 - 他们甚至不用硬件,因为他们自己在AWS上运行。 – coreyward 2012-04-16 20:54:10