以下情况:
我有一个服务器和一些应该在整个时间运行的rake任务,例如:
# email_sender.rake (except only)
while true
fetch all mail entries.each do |mail|
mail.deliver
end
end
或其他佣金任务
# update_market.rake (except only)
while true
Market.fetch_exchange_rate!
sleep 1
end
为了启动和停止这些rake任务,我使用神宝石,它运作良好。 但有一点我不清楚:我可以使用初始化程序在rails中启动我的神服务器吗? f.e。
# rails_root/config/initializers/start_god.rb
system 'god -c /www/rails_root/config/god.config'
我在我的开发环境中尝试过,正如我想的那样,即使我退出rails服务器,服务器也会运行。
但是在生产模式下运行时有什么警告吗?
感谢您的意见!
P.S。我不想使用CRON!这个解决方案对我来说是完美的,我不想换到另一个调度程序/队列/后台作业系统!
答案 0 :(得分:0)
使用Rails初始化程序可能不是启动该过程的最佳方式,它并不是它们的目的。你用Procfile看过Foreman吗?它可能适合你。
答案 1 :(得分:0)
您在部署应用程序时使用了什么?例如,如果你使用Capistrano,你应该使用Capistrano来启动并重装神(在你的生产环境中)。
对于开发,工头是一个非常方便的工具来管理这些过程,正如ctcherry提到的那样。您也可以直接从您的个人资料中export a god config file。