【发布时间】:2013-06-29 08:07:25
【问题描述】:
我最近一直在计划一个 Rails RSS 聚合器,我遇到了一些我可以使用一些建议的东西。处理用户订阅提要的轮询和解析的部分需要不断运行,我认为守护进程可能是最好的选择。 (我会使用守护进程 gem 并让守护进程定期查询数据库以获取需要刷新的提要,然后使用 Feedzirra 解析和保存项目。)
我的问题是:守护进程如何从 Rails 共享模型和迁移,特别是如果守护进程在另一台服务器上运行,应用程序是否需要它来实现可伸缩性? (即数据库服务器、提要爬虫服务器和前端实例)我可能会成为“过早扩展”的受害者,但作为一个 Ruby 新手,我对处理这个问题的最佳方法很感兴趣。为了第一次“做正确的事”。
或者我是不是走错了路?
【问题讨论】:
-
考虑为您的后台处理使用延迟作业,它会加载您的整个 Rails 应用程序,因此所有应用程序代码都可用,github.com/collectiveidea/delayed_job - railscasts 也有关于其他选项的精彩教程,railscasts.com/?tag_id=32
-
我可能会看一下 Railscast for Delayed Job,因为它似乎在设计时就考虑到了这种事情。乍一看,这部分听起来特别像我需要的:github.com/collectiveidea/delayed_job#running-jobs
标签: ruby-on-rails ruby daemon background-process