如何为 Hanami 应用程序配置 Puma?

2023-12-28

我有一个 Hanami 1.3.3 应用程序,它应该与 Puma 作为生产网络服务器一起运行。我想在集群模式下使用 puma 并正确使用 preload_app 。现在我正在努力寻找正确的 Puma 配置。我知道,每个子进程(工作进程)都必须有自己的新数据库连接、redis 连接等。 我的应用程序使用多个数据库连接、redis、sidekiq。主数据库通过 hanami-model 处理,其他数据库通过 pg-gem 处理(连接设置在class::initialize) 直接地。

处理这个问题的正确花见方法是什么?

这是一种方法:

workers 4
threads 1, 8

preload_app!

rackup      DefaultRackup
port        2300
environment 'production'

on_worker_boot do
  require_relative "config/environment"
  Hanami.boot
end

那是对的吗?对我来说,这感觉不对。

跟随更好吗?

# ...
on_worker_boot do
  Hanami::Model.disconnect # but what happens to the opened db-connections of parent-process?
  Hanami::Model.load!
  # redis??
  # sidekiq??
end

Thx


在一位同事的帮助下花见/聊天 https://gitter.im/hanami/chat,我最终得到了以下 Puma 配置:

require_relative './environment'
workers 2

threads_count = 5
threads threads_count, threads_count

daemonize true

preload_app!

rackup      DefaultRackup
port        2300
environment 'production'

on_worker_boot do
  Hanami.boot
end

以下是帮助我得出结论的信息:

彪马和导轨 https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot

Hanami.boot 的定义 https://github.com/hanami/hanami/blob/master/lib/hanami.rb#L124

Hanami.disconnect 的定义 https://github.com/hanami/model/blob/31566f1449a84c156b00188b785dc6aafd76416d/lib/hanami/model.rb#L84

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Hanami 应用程序配置 Puma? 的相关文章

  • yard 0.7.3 无法在 Markdown 和 Textile 中构建我的自述文件

    我决定将我的项目中的 README 文件转换为 Markdown 并一直使用yard 验证文档是否正确呈现 所以我安装了 rdiscount 将 README 更改为 README md 并尝试 yard doc README md 这给了
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 如何从 ruby​​ 中的字符串名称创建类实例?

    我有一个类的名称 我想创建该类的一个实例 以便我可以循环该类的架构中存在的每个 Rails 属性 我该怎么做呢 我的名称是我想要检查的类的字符串 我想我需要实例化一个类实例 以便我可以 循环遍历它的属性并打印它们 在 Rails 中你可以这
  • 如何从 Ruby 程序发送邮件?

    我想从 Ruby 应用程序发送电子邮件 核心语言中是否有调用来执行此操作 或者是否有我应该使用的库 最好的方法是什么 如果你不想使用行动邮递员 http wiki rubyonrails org rails pages ActionMail
  • Rails 3 在 Ruby 1.9.2 上初始化非常慢

    我使用 RVM 来管理环境 安装了 Ruby 1 9 2 p136 我认为是最新版本 和 Rails 3 创建了 gemset 并运行捆绑器 到目前为止一切正常 但 Rails 在运行命令 即生成 销毁 rake 等 时初始化速度非常慢 完
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • 在 Heroku 上托管的 Rails3 中强制使用“www”,无需 .htaccess

    我想知道是否有 Rack 替代方案来强制 URL 中包含 www 因为 Heroku 不使用 htaccess 文件 也许甚至是在路线中做到这一点的好方法 Thanks 在您的 ApplicationController 中 您可以简单地创
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • 在 ruby​​ 中下载多个 FTP 文件,如 d*.txt

    我需要连接到 ftp 站点并下载一堆名为 D txt 的文件 最多 6 个 你能帮我用 Ruby 编写这个代码吗 下面的代码只是 ftp Net FTP new ftp server site ftp login user pwd ftp
  • ruby 正则表达式匹配模式的多次出现

    我正在寻找构建一个 ruby 正则表达式来匹配模式的多次出现并将它们返回到数组中 模式很简单 即 两个左括号 一个或多个字符 后跟两个右括号 这就是我所做的 str Some random text lead first name and
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • ruby 认为我正在引用顶级常量,即使我指定了完整的命名空间

    在我的应用程序中我有 class User include User Foo end User Foo定义在 app models user foo rb 中 现在我正在使用一个定义自己的库Foo班级 我收到此错误 警告 User Foo
  • Rails 3.2:用 json 序列化中的空字符串替换 null 值

    我正在使用 Rails 3 2序列化 http www simonecarletti com blog 2010 04 inside ruby on rails serializing ruby objects with json 将 ru
  • rake db 问题:迁移 -

    我无法为 Ruby on Rails 设置 MySQL 数据库 设置数据库并确保 config database yml 文件匹配后 我遇到了以下错误消息 U Rails alpha gt rake db migrate trace in
  • 处理铁路中 STI 子类路线的最佳实践

    我的 Rails 视图和控制器散布着redirect to link to and form for方法调用 有时link to and redirect to它们链接的路径是明确的 例如link to New Person new per
  • 通过 ruby​​ 进程共享变量

    我正在编写一个 gem 其中我必须分叉两个进程来启动两个 webrick 服务器 我想通过基类的类方法启动该服务器 因为应该只运行这两个服务器 而不是多个服务器 在运行时 我想调用这两台服务器上的一些方法来更改变量 我的问题是 我无法通过基
  • 更改 en.yml 文件中的属性名称不起作用

    我更改了 ruby on Rails 项目中 en yml 文件中的属性名称 按钮工作正常 但字段属性并没有改变 这是我的模型 class Enr AffordableWarmth lt ActiveRecord Base self tab
  • 如何在 Ruby 中将 DateTime.now 转换为 UTC?

    如果我有d DateTime now 如何将 d 转换为 UTC 带有适当的日期 DateTime now new offset 0 将在标准 Ruby 中工作 即没有 ActiveSupport

随机推荐

  • cucumber-testng 4.0 并行执行默认为 10 始终

    这是我的酷跑者 我试图通过重写 dataprovider 方法来使用 cucumber jvm 4 0 0 中内置的并行性 我看到我的场景是并行调用的 但线程数始终默认为 10 我尝试使用 threads 选项作为状态执行GitHub ht
  • 如何通过 SSH 连接到 Mac 容器中的 Docker [重复]

    这个问题在这里已经有答案了 我正在运行 Mac 版 Docker 版本 1 12 0 rc2 beta16 内部版本 9493 我已从本地存储库中提取了一个映像 并使用 docker run d 创建了一个容器 使用 docker ps 我
  • OllyDbg 中的左下窗格显示什么?

    我使用 NASM 组装了以下代码 global start section data var1 DD 0xA1A2A3A4 4 bytes var2 DD 0xB1B2B3B4 4 bytes section bss var3 RESD 1
  • 使用Officer 除了Word docx 之外还创建pdf

    我在循环中使用官员 过去使用记者 来创建 150 个独特的文档 然而 我需要将这些文档从 R 导出为 word docx 和 pdf 有没有办法将用officer创建的文档导出为pdf 这是可能的 但我的解决方案取决于 libreoffic
  • 使用 Alamofire/Codable 解析 JSON 行

    是否可以使用 Alamofire 和 codable 解析 JSON 行 这是我现在的代码 Alamofire request url method get parameters parameters encoding URLEncodin
  • 无法将属性“溢出”设置为 null

    webView getSettings setJavaScriptEnabled true webView加载这个html代码
  • 自动向下滚动聊天div

    我有这个代码 用于加载聊天 function getMessages letter var div messages get msg show php function data div html data setInterval getM
  • C++ 跨平台高分辨率定时器

    我正在寻找用 C 实现一个简单的计时器机制 该代码应该可以在 Windows 和 Linux 中运行 分辨率应尽可能精确 至少毫秒精度 这将用于简单地跟踪时间的流逝 而不是实现任何类型的事件驱动设计 实现这一目标的最佳工具是什么 更新了一个
  • 一个简单的java多线程

    嗯 我遇到了一个奇怪的问题 public class Test private boolean state new boolean false false public void createThread Thread th1 new Th
  • ng build -prod 与 ng build --prod --build-optimizer=true

    我的 Angular 项目是 Angular4 3 3 ng 构建产品 构建需要 77 秒 ng build prod build optimizer true 构建需要 190 秒 没有供应商块 大小更小 但大小差异不大 Chunk di
  • Angular2 - ContentChild 查询找不到嵌套组件

    我正在尝试设置一个 Angular2 组件 该组件自动聚焦通过内容投影插入的输入元素 我使用的解决方案基于这个答案 https stackoverflow com a 34503163 1592971 我还有一个额外要求 即输入元素可以嵌套
  • 如何检查服务器是否发送垃圾邮件?

    我今天检查了我的 IP 地址 因为我收到了退回的电子邮件 并且我发现它已被列入一些列表的黑名单 我只使用我的网站发送客户电子邮件 不发送时事通讯电子邮件 所以我不会发送很多电子邮件 我不知道为什么我的专用IP地址会被列入黑名单 有没有办法检
  • 如何检查是否安装了 .net for excel 互操作性

    我在代码中使用 net Primary Interoperability Assembly for Excel 但是 该应用程序可以在未安装 net PIA for Excel 的计算机上运行 我想如果没有安装就给出错误信息 即使我正在检查
  • FAILED_NOT_VISIBLE 负载平衡中 Google 管理的 SSL 证书

    我正在与负载平衡合作 将 https 连接到我的静态网站 并且我在 GoDaddy 中拥有我的域名 在初始阶段 我只有 Http 所以我用指向 c storage googleapis com 的 cname 绘制了我的域名 并用域名进行存
  • Google 地图 API 函数 map.getCenter()

    当用户调整地图时 我将 Google Map API 设置的缩放和位置保存在 cookie 中 当他们回来时 地图位于同一个地方 该函数大部分时间都有效 var h JSON stringify map getCenter null 2 j
  • 无法将 FFmpeg C 库移植到 android 中

    我到底想要做什么 访问ffmpeg c文件来修改int main int argc char argv 功能为JNI并将 ffmpeg 命令作为字符串传递 我尝试将 ffmpeg C 库移植到 android ARM 处理器 我遵循了不同的
  • 新部署上的 System.Web.AspNetHostingPermission 异常

    我有一个朋友正在将 Web 应用程序从一台服务器转移到另一台服务器 新服务器的设置与第一台服务器相同 但是 他遇到了安全问题 这是错误详细信息 请求 System Web AspNetHostingPermission System Ver
  • 为我的 MVC 应用程序创建服务层?

    据我了解 MVC 通过控制器这一 粘合剂 将类定义 模型 与表示 视图 分开 控制器应该有单一的职责 因此是可测试的 ViewModel 用于将来自多个实体的数据汇集在一起 并 按摩 来自视图控制器的数据 似乎业务逻辑并没有真正占有一席之地
  • 父 MOC 从子 MOC 获取空数据的更改

    我陷入了 CoreData 和父子 MOC 的这个问题 将对象添加到子 MOC 保存它们并保存父 MOC 时 所有对象的属性都会重置为 defaultValue 我在此处粘贴了两个 MOC 的日志 特别是这些日志中重置的 stringAtt
  • 如何为 Hanami 应用程序配置 Puma?

    我有一个 Hanami 1 3 3 应用程序 它应该与 Puma 作为生产网络服务器一起运行 我想在集群模式下使用 puma 并正确使用 preload app 现在我正在努力寻找正确的 Puma 配置 我知道 每个子进程 工作进程 都必须