ruby-on-rails – Rails 4数据库连接池错误
|
我有一个使用NGINX和Puma托管的rails应用程序.每10个小时左右,该应用程序将无法使用.每当用户尝试连接时,都会显示以下错误消息:
这将一直持续到应用程序重新启动. 我已经读过这是因为数据库连接池已满,因此必须在rails应用程序中创建线程,这些线程在完成时不会关闭与数据库的连接. 遵循本指南
结束 该站点使用Rails 4.0.0托管.我已经读过这可能实际上是一个Rails 4.0.0问题,并且这在以后的版本中得到修复,但我不确定. >有没有办法监视连接池中活动数据库连接的数量?这将使调试更容易. rails应用程序正在生产环境中运行.如果需要,我可以提供有关我的Puma,NGINX配置的更多信息. 最佳答案 故障安全响应试图分配数据库连接的事实可能是冒烟的枪.它可能有助于您描述故障安全响应中发生的情况.当原始请求触发异常时,可能会触发故障安全响应.在ConnectionManager调用clear_active_connections之后调用调用故障安全响应的rails show_exception例程!对于当前请求(因异常而失败),这意味着在故障安全响应失败后,rails不会自动释放数据库连接.这意味着故障安全响应处理程序负责清理自己的数据库连接.我不确定故障安全响应处理程序是否尝试连接到数据库是好的做法,但如果这是所需的行为,那么您可能必须调用clear_active_connections!显式位于故障安全处理程序的末尾(在ensure块中). 我一直在调查我自己的应用程序中的类似问题,并发现这是一个有用的指南,如何连接工作:https://bibwild.wordpress.com/2014/07/17/activerecord-concurrency-in-rails4-avoid-leaked-connections/.虽然这里引用的代码可能需要一些调整,有一个很好的概述在那里如何去做检测何时创建隐式数据库连接. (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails-capistrano部署后ec2服务器中缺少puma.sock
- nginx – 如何部署我的Angular 2 Typescript Webpack应用程
- 域重定向到nginx中的错误站点,配置文件中的多个站点
- Nginx – 根据server_name更改根目录?
- 在Ubuntu 10.04上使用Nginx设置龙卷风,供生产使用
- nginx accept() failed (24: Too many open files)
- 安装了gitlab,但只有nginx欢迎页面显示
- Nginx#ngx_http_limit_req_module:超过费率后503返回多长时
- 重新创建gitlabs nginx conf文件
- 与环境无关的301/302重定向与PHP
- nginx PHP-FPM农场?
- php-Laravel Forge Nginx Config for SSL
- apache-2.2 – 如何让Nginx转发原始主机名
- 如何在nginx反向代理后面的CakePHP中安全地检测S
- node.js – 如何在使用docker-compose时为mongod
- ruby-on-rails-对于子目录中的页面缓存,我的Ngin
- angularjs – 在nginx中无法直接访问的角度路由
- ruby-on-rails-乘客nginx:在子目录中托管Rails应
- nginx php-fpm =找不到文件
- .htaccess – nginx中MEAN-stack应用程序的漂亮u
