草庐IT

passenger

全部标签

ruby-on-rails - 如何在 Rails 和 actioncable 中为网页实现 "watching now"功能

假设对于一个聊天室,我想向用户显示此时有多少用户在线(基本上是有多少人正在观看)。我想到的是为每个actioncablechannel使用一些redis计数器,当客户端连接到channel或断开连接时递增和递减此计数器,然后我们开始了,但是这种方法的问题是如果某些客户端打开一个网页,然后计数器会增加,如果服务器关闭了一段时间,客户端关闭了网页,那么断开连接的事件将不会被监听,所以计数器不会减少并且它的值永远是错误的。我认为如果我可以在服务器关闭时捕获事件以便将所有此类redis计数器设置为零,则可以增强此方法,但不确定如何捕获此类事件(我将nginx与passenger一起使用)。那么

ruby-on-rails - 使用 Nginx、Action Cable 和 Redis 的乘客 fork

我的登台服务器上的Passenger(v6.0.0)和Action_cable实时通知器有一些问题:当我执行一些链接到action_cable的操作时,出现一些新的乘客进程(fork...)和我的内存消耗增加并且不要回落。我的路线配置:mountActionCable.server=>'/user_notifs'我的Nginx配置:location/user_notifs{passenger_app_group_namephusion_staging_action_cable;passenger_force_max_concurrent_requests_per_process0;}我

ruby-on-rails - 由于 Phusion Passenger 队列阻塞导致 Web 服务负载过重

我们正在使用Ruby2onRails4、Mongoid4、MongoDB2.6开发Web服务。它使用Sidekiq3.3.0和Redis2.8,并在PhusionPassenger5.0.4+Nginx1.7.10上运行。它仅通过JSONAPI为移动客户端和AngularJS网络客户端提供服务。通常一切正常,API处理和响应不到1秒。但在高峰时段,服务负载很重(API呈现为503ServiceUnavailable)。下面是我们的Nginx和Mongoid配置:Nginx配置passenger_root/home/deployer/.rvm/gems/ruby-2.1.3/gems/p

mongodb - 连接 MongoDB 集群时 Phusion Passenger "Error: missing delimiting slash between hosts and options"错误

我已经部署了自己的MongoDB集群。我有一个正在运行的Meteor应用程序,它在Nginx的顶部与PhusionPassenger一起运行。更新Nginx配置文件中的连接字符串后出现以下错误://bundle/programs/server/node_modules/fibers/future.js:280throw(ex);^Error:missingdelimitingslashbetweenhostsandoptionsatmodule.exports(/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_

mongodb - 如何将 rails + mongodb 应用程序部署到实际域?

我关注了thistutorial使用Mongoid和Mongodb设置基本的Rails4应用程序。我在服务器上设置了Passenger以进行部署。当我访问domain.com:3000时,应用程序可以正常工作。此外,当我访问domain.com:28017时,它显示mongodb正在运行。在所有示例/教程中,我可以找到该应用程序托管在localhost:3000,而我正在尝试部署到我的实际域。当我访问domain.com时,我收到以下错误消息:Problem:Nosessionsconfigurationprovided.Summary:Mongoid'sconfigurationre

ruby-on-rails-3 - 与乘客一起部署 RoR 应用程序时无法 bundle

我正在使用乘客和apache将应用程序部署到生产环境。我已经在同一台服务器上部署了多个应用程序,没有问题。但是,由于某种原因,我在使用此应用时遇到了问题。当我运行bundle时,我收到了很多以前从未见过的警告:WARNING:#1.6.0"]>#-*-encoding:utf-8-*-Gem::Specification.newdo|s|s.name=%q{bson_ext}s.version="1.6.0"s.required_rubygems_version=Gem::Requirement.new(">=0")ifs.respond_to?:required_rubygems_v

ruby-on-rails - mongoDB,phusion passenger 的乘客和性能问题

我刚刚在mongodb用户列表上偶然发现了一个帖子,其中讨论了将mongoDB与MongoMapper结合使用时的passenger和forking。IjustwantedtoremindthatRailsdevelopersneedtotweaktheir'environment.rb'iftheyuseMongoDBwithPassenger.Bydefault,PassengerspawnsRubyprocesseswithfork().And,asfork()sharesfiledescriptors,theRailsapphastoreopentheconnectiontoM

mysql - Rails 会创建任何连接到 mysql 的连接池吗?它是单线程设计吗?

如何在Rails3中处理与mysql的连接?网站的多个连接是否共享同一个mysql连接,还是从连接池中获取一个连接,然后在请求关闭所有与mysql的连接后释放它?如果有10个前端服务器都访问一个数据库服务器,这里有什么问题吗?如果有任何影响,我会使用Phusionpassenger。 最佳答案 Thedoc自己回答:Aconnectionpoolsynchronizesthreadaccesstoalimitednumberofdatabaseconnections.Thebasicideaisthateachthreadcheck

mysql - 如何在 Passenger fork 工作进程后重置 Datamapper 连接?

在升级我的Rails应用程序的几个部分(Ruby1.9.2、Rails3.0.4、Datamapper1.1.0)并迁移到PassengerStandalone之后,我们开始出现奇怪的MySQL连接错误,包括:场数不匹配在查询期间与MySQL服务器失去连接MySQL服务器已经消失然后我想起Passengerforkprocesses,redis,memcache等东西需要重新打开新的连接,不然数据流会乱码,又找了一个post由于与MySQL的相同问题,进行类似的冒险。但我还记得读过herePassenger自动处理数据库连接。所以我有两个问题:1)如何告诉DataMapper创建和使用

mysql - 由于rails一般都是以单线程的方式运行在自己的进程中,是否需要conn池?

据我所知,通过thin/phusion运行多个进程以支持Rails的并发是常见的做法。这意味着如果您想模拟30个线程,则必须生成30个独立的Rails进程来运行您的应用。如果以上是正确的,那么ActiveRecord是支持连接池还是只有一个到mysql的连接?甚至需要多个连接也没有意义,因为每个Rails进程永远不会处理多个请求,对吗? 最佳答案 Nginx/Unicorn堆栈非常优雅地处理了此类问题,并隐藏了数据库连接池的实现。在这里阅读更多:https://github.com/blog/517-unicorn