问题标签 [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 投票
1 回答
1086 浏览

ruby - 使用 sequel 和 puma 创建与 postgresql 数据库的连接

在过去的几周里,我一直在学习 Ruby,我必须说要掌握一些东西并不容易。

这导致我问这个问题,我正在尝试设置一个项目,它使用Rubinius作为 ruby​​ 引擎,puma作为网络服务器(因为 Puma 声明它最好与 Rubinius 一起工作,因为它们的并发实现),PostgreSQL 作为数据库和续集作为数据库的工具包。

我正在努力的是建立数据库连接。事实上,我正在这样做config.ru

但是有人告诉我,如果我想要并发而不是共享连接,这不是最好的地方。如果我使用的是Unicorn,我会在 中使用before_fork,但 Puma 没有这样的功能。

虽然它确实提供了一个on_worker_boot它对 Sequel 没有用,因为如果我预加载应用程序,Sequel 需要一个数据库连接才能创建我的模型(class SomeClass < Sequel::Model)。

我现在有点困惑,我不知道从哪里开始。我试图在这个问题上找到一些指南或一些好的做法,但我发现的唯一东西是使用 ActiveRecord。

有人知道如何正确地执行此操作,连接到数据库吗?

0 投票
1 回答
23532 浏览

ruby - Puma 在哪里登录

我一直在使用 Thin 来运行我的 ruby​​ Sinatra 应用程序,但现在我正在切换到 Puma。log/thin.logThin 创建我使用的自己的日志。我注意到 Puma 没有生成日志文件(我看不到)。我试过用谷歌搜索有关这方面的文档,但没有真正找到任何东西。

我想知道是否/如何在 Puma 中指定日志路径。

任何帮助将非常感激。

亚历克斯

0 投票
0 回答
669 浏览

ruby - 我无法让 runit 与 chef 和 puma 合作,这可能是一个 runit 问题,但我不确定

这是运行脚本:

这是 runit 日志脚本:

这是我在厨师中填充这些变量的方式:

Chef 成功完成运行,但服务未启动。

如果我手动运行此命令,则会收到超时错误。

如果我运行填充 runit 脚本的确切命令,puma_command然后 puma 成功启动,此时它完全绕过了 runit,但我确信 puma 脚本处于正常工作状态。

0 投票
1 回答
188 浏览

ruby - 使用 Puma 和 Bundler 在 Ruby 项目中使用 Intellij 调试 Websockets 应用程序

我正在关注 Ruby https://devcenter.heroku.com/articles/ruby-websockets中的 Heroku 指南。为此,我必须从终端执行bundle exec puma -p $Port并且我的应用程序运行良好。

问题是我想从 Intellij 调试我的应用程序,但我不知道如何在这个 IDE 中设置我的运行配置。我的项目不是 Rails 项目,它与 Heroku 示例非常相似。

提前致谢。

0 投票
5 回答
2264 浏览

ruby - 在没有猴子补丁的情况下禁用 Rack::CommonLogger

所以,我想为我的sinatra应用程序完全自定义日志记录,但我似乎无法禁用Rack::CommonLogger.

根据sinatra 文档,我需要做的就是添加以下行(也尝试将其设置false为):

到我的配置。但是,这不起作用,我仍然在终端中收到类似 Apache 的日志消息。所以到目前为止我发现的唯一解决方案是猴子修补该死的东西。

如果可以在不恢复此类问题的情况下禁用此功能,有人有任何想法吗?

0 投票
1 回答
1449 浏览

ruby-on-rails - Puma 无法在 jRuby 上启动并出现错误:信号 USR1 正在被 JVM 使用,并且在此平台上无法正常工作

我正在尝试在我的 VPS 上部署一个简单的 rails 应用程序,但是当 capistrano 尝试启动 puma 时,我总是收到此错误消息:

我的 VPS 运行 Centos 6 和 jRuby 1.7.11。我还尝试运行 bundle install --binstubs 然后

但仍然会出现同样的错误。

知道为什么会这样吗?

0 投票
1 回答
1829 浏览

sockets - Puma 服务器接收连接被拒绝,因为它无法连接到套接字文件

我正在运行一个带有 puma 服务器和 nginx 的 jruby 项目。我使用 puma-manager upstart 服务运行 puma。只要清理了我设置要使用的服务的套接字文件(在尝试启动服务之前已删除),一切都可以正常工作。当套接字文件不存在时,服务会创建它,nginx 可以看到它就好了。但是,当停止/启动或重新启动 puma 时,套接字文件仍然存在,并且我收到错误消息:IOError: Connection denied,当尝试连接到套接字时。删除套接字可以解决问题。

问题是必须手动删除这个套接字文件在生产中很烦人而且很麻烦。

我正在使用 puma.rb 配置启动 state_file 和 pidfile 选项设置正确。我认为这会为我正确处理这些文件。每次重置服务器时如何删除此套接字文件的任何建议或帮助?

0 投票
1 回答
3482 浏览

ruby-on-rails - Rails 4,Puma,Nginx - ActionController::Live Streaming 在发送第一个块后死亡

这是我为解决我的问题而设置的一个简单的 Rails 4 项目:

https://github.com/rejacobson/rails4-streamtest

我在 /home/stream 处设置了一条路线,该路线应以 1 秒的间隔将一行文本流式传输 5 次。

当我使用 tcp:// 运行 puma 时,没有 nginx,流式传输工作完美。

我得到了 5 行流式传输,没问题。

当我介绍 nginx 时,curl 会输出第一行但之后立即退出。我确实继续在服务器和日志上看到 puts 调用的输出,所以我知道请求仍在 5.times 循环中处理。

它也不会像用户切断连接那样抛出 IOError 异常。

这是我到目前为止所尝试的:

  • 主 conf 文件和服务器 conf 中 nginx 指令的不同组合。
  • 更改导轨设置。
  • 各种 puma 配置设置。
  • 在控制器方法中设置各种不同的标头,希望这是一个缓存问题。

搜索互联网也提供了很少的帮助。

我不知所措,需要一些方向。

这是两个 curl 调用的输出,有和没有 nginx。

没有 nginx

puma.stdout

使用 nginx

puma.stdout

有趣的是,我刚刚注意到,获取请求日志行的位置:

"GET /home/stream HTTP/1.0" 200

在每个 curl 调用中都不同,并且与实际流式传输的文本量有关。

关于这里发生了什么的任何想法?为什么使用 Nginx 时 Rails 不能流式传输整个内容?

0 投票
1 回答
751 浏览

ruby-on-rails - rails 4 直播不适用于 Puma

我正在尝试ActiveController::Live使用 Puma 服务器在 Rails 上实现一个小测试。我通过 启动 Puma 服务器rails s puma,并用于curl localhost:3000/messages/events测试。然而,在一次全部返回数据之前有很长的停顿,这与使用 WEBrick 相同。那么为什么 Puma 服务器不直播结果呢?

0 投票
1 回答
2792 浏览

sinatra - 如何通过设置生产环境在生产模式下使用 puma?

我做了一个小Sinatra 应用程序。在我的 Gemfilegem 'puma'中添加生产组

我将生产模式设置为config.ru

但是在我运行之后backup,默认的 webrick 网络服务器就会运行。我该如何解决这个问题?