2013-03-19 34 views
0

在彪马的配置文件的例子,它说的on_restart功能如下:彪马热重启on_restart函数:必要的Rails应用程序?

代码做一个重新启动之前运行。此代码应关闭日志文件, 数据库连接等

我需要实现这个的Rails应用程序,关闭到数据库和日志文件的连接,或者是采取自动处理?如果没有,我怎么才能做到这一切?

回答

0

不,你没有,Rails负责自动重新加载你的代码。但是,这种代码重新加载支持是有限的。例如,在重新启动应用程序服务器之前,不会应用对application.rb的更改。

但我会推荐Phusion Passenger超过彪马。 Phusion Passenger更容易安装,特别是当您进行生产时。 Phusion Passenger直接集成到Apache和Nginx中,并提供高级功能,如动态工作管理。 Phusion Passenger非常成熟,稳定和高性能,并被诸如纽约时报,赛门铁克,AirBnB等使用。

+1

谢谢!也只是为了抛出它,我很想看到Passenger 4 vs Puma与其他并发ruby应用程序服务器的基准比较 – 2013-05-06 15:12:36

0

我发现使用Redis作为我的Rails.cache提供程序会在第一次请求时导致出现错误页面每次我的Rails/Puma服务器重新启动。我得到的错误是:

的Redis :: InheritedError(尽量选用从一个子进程 的连接,而重新连接你需要分叉后重新连接到Redis的。)

要解决这个问题错误,我并没有添加任何东西on_restart,但确实有将代码添加到on_worker_boot(我与工人= 4运行彪马):

彪马config.rb

on_worker_boot do 
    puts "Reconnecting Rails.cache" 
    Rails.cache.reconnect 
end 
相关问题