在用于Puma的配置文件示例中,它表示on_restart函数的以下内容:
在重新启动之前运行的代码。此代码应关闭日志文件、数据库连接等。
我需要为Rails应用程序实现这一点,关闭到db和日志文件的连接,还是自动处理?如果没有,我该怎么做呢?
发布于 2013-05-06 09:11:36
不,没有,Rails负责自动重新加载代码。但是这种代码重新加载的支持是有限的。例如,在重新启动应用服务器之前不会应用对application.rb的更改。
但我推荐普休旅客而不是美洲豹。Phusion乘客是一个容易设置,特别是当你击中生产。Phusion客运公司直接集成了Apache和Nginx,并提供了诸如动态员工管理等高级功能。普华客非常成熟、稳定、高效,被“纽约时报”、赛门铁克、AirBnB等公司所采用。
发布于 2014-04-01 03:00:31
我发现,每次我的Rails/Puma服务器重新启动时,使用Redis作为我的Rails.cache提供程序都会在第一个请求时导致一个错误页面。我得到的错误是:
Redis::InheritedError (尝试使用来自子进程的连接而不重新连接。你需要在分叉之后重新连接到Redis。)
为了避免这一错误,我没有向on_worker_boot on_restart添加任何内容,但必须向添加代码(我正在使用workers=4运行Puma ):
puma-config.rb
on_worker_boot do
puts "Reconnecting Rails.cache"
Rails.cache.reconnect
endhttps://stackoverflow.com/questions/15491664
复制相似问题