问题标签 [puma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
216 浏览

ruby-on-rails - Nitrous.io 无法在生产模式下启动 rails

我正在使用免费的 Nitrous.IO 盒子,应用程序在开发模式下运行良好,但这是我在生产模式下得到的:

更新:

我设法通过运行 db:create 创建了 productoction 数据库,我可以在生产模式下启动,但我的 css 没有加载,所以建议我运行下面的命令,但 rake 中止!运行后

我明白了

0 投票
2 回答
2819 浏览

ruby-on-rails - 更改 Gemfile 时 Puma 分阶段重启失败

我在 MRI 2.1.0 上使用 Puma 作为 Rails 4 项目的应用程序服务器。我正在使用 Capistrano 3 来处理部署。一切都像魅力一样运作。但是,我最近注意到我的部署过程存在问题。如果我随后更改我的 Gemfile,puma 无法完成分阶段重启,最终所有工作人员都会被杀死。我在集群模式下运行 Puma 并preload_app!设置为 true。

这是我处理分阶段重启的 Capistrano 配方。

这是 Capistrano 日志的截断输出。

这是我的config/puma.rb文件。

有人在我的 puma 配置文件中看到任何问题吗?

所以,目前我会bundle exec cap production deploy:start在发生这种情况时启动 Puma。但是,我希望在每种情况下都实现零停机部署。

如果无法启动新的衍生进程,Puma 能否继续使用旧的工作进程?

0 投票
3 回答
4578 浏览

ruby - 如何使用 Puma 或 Unicorn 启动一个最小的 ruby​​ 应用程序?

我有一个在 Thin 上运行的非常基本的 ruby​​ 示例,但我想知道如何翻译这个示例以使用 Unicorn 或 Puma 作为 HTTP 服务器。这是我现在拥有的代码:

这运行得很好,但我不知道如何使用 Puma 或 Unicorn 让它运行。我为这两者找到的大多数在线文档都是针对 Rails 应用程序的。如何通过这个简单的程序利用这些服务器的多线程功能?

0 投票
1 回答
1075 浏览

ruby-on-rails - 一旦请求被处理就杀死 puma 线程 rails

puma可以更改线程数以同时处理多个请求。但是在 Heroku 的情况下,与 postgres 的数据库连接是有限的。

为了处理更多的请求,我们可以增加 dyno 的数量,每个 dyno 都有默认的 0:16 线程。在这种情况下,每个测功机在负载下可以与数据库建立 16 个连接。

使用 rails ActiveRecord,我们可以使用以下配置限制每个 rails worker 进程的数据库连接数:

但是,由于 db 连接限制,如果测功机的数量增加,连接限制就会受到影响。

有什么方法可以在请求完成后立即终止线程并关闭数据库连接?

我尝试使用pgbounceras abuildpack但准备好的语句存在问题。

我目前正在rails 4.0.0使用puma 2.7.1.

puma 中是否有一些事件挂钩,我们可以在请求完成时进行这样的配置?

0 投票
1 回答
4791 浏览

ruby-on-rails - 在 Ubuntu 中重启 Puma

为什么我必须在 Ubuntu 中重新启动 Puma 两次才能使其正常工作?

0 投票
0 回答
254 浏览

ruby-on-rails - Rails 中的多线程:while 循环阻塞了另一个方法调用

我正在使用 Puma 服务器来实现多线程。这是我的控制器:

因此,有两个主要方法:get_messages由 JavaScript 调用,其任务是在电话到达之前不返回结果(应保持连接)。

第二种方法 -record_call在接听电话时由 PBX 脚本调用。

问题是——当只有

get_messages在then方法中提到record_call可以随时调用,并且整个 allpication 没有被锁定。

但是,如果我将其替换sleep 60

(应该如此) - 这个while循环阻塞了整个应用程序。

我究竟做错了什么?为什么sleep不阻止应用程序,但是当它被包装成while循环(假设它是一个无限循环)时,应用程序被锁定了?

我想我的情况下的多线程不是真正的多线程,sleep而是以特殊方式处理。

0 投票
1 回答
2791 浏览

ruby-on-rails - 机架中间件和线程安全

我的 Rails 4 应用程序使用了一个自定义机架中间件。如果客户端未提供有效信息(我正在处理 API) ,则中间件本身只是默认设置AcceptContent-Type标头。application/json因此,在每次请求之前,它都会更改这些标头,并且在每次请求之后,它会添加一个带有自定义媒体类型信息的自定义 X-Something-Media-Type 头。

我想切换到 Puma,因此我有点担心这种中间件的线程安全性。我没有使用实例变量,除了一次@app.call我们在每个中间件中遇到的常见变量,但即使在这里我也复制了我在 RailsCasts 的评论中读到的一些内容:

dup._call为了处理线程安全问题真的有用吗?

除了那个@app实例变量,我只使用当前环境变量构建的当前请求:

我打电话env.update来更新标题和表单信息。

当我切换Webrick到并发 Web 服务器(例如)时,预期该中间件会出现一些问题是否足够危险Puma

如果是,您是否知道一些方法来进行一些测试以隔离我的中间件的非线程安全部分?

谢谢。

0 投票
1 回答
2182 浏览

ruby-on-rails - 如何将 Rails 开发服务器设置为 webbrick 而不是 Puma

我在 Heroku 上使用 Puma 作为我的服务器。当我安装了 Puma gem 时,我的开发环境以 Puma 作为服务器启动。如果不从我的 gemfile 中拉出 pum gem,我似乎无法关闭它。

我喜欢在开发中使用保存服务器作为生产的想法,但是 puma 服务器使跟踪我的调试语句变得困难。此外,我似乎没有办法更改最大线程数,即使我的 puma.rb 文件将其设置为 1,在 dev 中也显示为 16。

0 投票
1 回答
709 浏览

ruby-on-rails - Rails 响应正文中出现奇怪的额外字符

我正在使用 Puma 服务器运行 rails 应用程序,每个响应在每个响应的开头(看起来像正文长度)和结尾(总是零)都有一些十六进制数字。

这是什么?

0 投票
2 回答
3305 浏览

ruby-on-rails - 生产日志是空白的?

我的彪马配置:

我的环境/production.rb

我启动我的服务器:

我浏览我的应用程序。我的 log/production.log 是空白的。不知道为什么?

目录访问权限0777贯穿我的整个应用程序。

不知道是什么原因造成的。真的需要日志(显然)。在本地和远程发生,因此与我的配置有关。但是我不确定是什么配置。puma/ubuntu/rails 中有什么可能导致这种情况的吗?

development.log 完美运行。

我已将 development.rb 复制粘贴到 production.rb 文件中。字面意思相同。好的?相同的 development.rb 和 production .rb 然而:

填充 development.log

让 production.log 和 Kim Kardashian 的脑袋一样空荡荡。