0

以下情况:

我有一个服务器和一些应该一直运行的 rake 任务,fe:

# email_sender.rake (except only)
while true
  fetch all mail entries.each do |mail|
     mail.deliver
  end
end

或其他 rake 任务

# update_market.rake (except only)
while true
  Market.fetch_exchange_rate!
  sleep 1
end

为了启动和停止这些 rake 任务,我使用了 god gem,它工作得很好。但是我不清楚一件事:我可以使用初始化程序在 Rails 中启动我的上帝服务器吗?铁

# rails_root/config/initializers/start_god.rb
system 'god -c /www/rails_root/config/god.config'

我在我的开发环境中尝试了它,并且如我所愿,即使我退出 rails 服务器,服务器也会运行。

但是在生产模式下运行它时有什么警告吗?

感谢您的意见!

ps 我不想使用 CRON!这个解决方案对我来说是完美的,我不想更改为另一个调度程序/队列/后台作业系统!

4

2 回答 2

0

使用 Rails 初始化程序可能不是启动该过程的最佳方式,这并不是它们的真正用途。你用 Procfile 研究过 Foreman 吗?它可能适合你。

http://ddollar.github.com/foreman/

于 2011-07-16T02:36:18.167 回答
0

你用什么来部署你的应用程序?例如,如果您使用 Capistrano,您应该使用 Capistrano 来启动和重新加载 God(在您的生产环境中)。

对于开发来说,foreman 是一个非常方便的工具来管理这些流程,正如 ctcherry 所提到的。您还可以直接从您的个人资料中导出上帝配置文件。

于 2012-11-12T08:55:56.617 回答