ruby 中的数据库连接池

2023-12-30

我刚刚开始使用 Ruby,正在使用 Sinatra,但找不到在请求之间共享数据库连接的方法。

我来自 Java Web 开发,你必须做的基本事情之一就是池化数据库连接,所以我确信 Ruby 中存在类似的东西,但我只是找不到它。

ActiveRecord 和 DataMapper 提供了此功能,但我不需要 ORM,只想进行常规 SQL 查询。

是否有针对 Sinatra 的特定方法,或者是否有针对所有基于机架的应用程序的通用方法?


要保持连接,您只需要创建一个实例变量(无论如何,Sinatra 应用程序只是对象)或全局变量。或者为您管理连接的类。我见过的大多数 Ruby 数据库都是数据库适配器或只是客户端。

@db = Mysql2::Client.new #...

或者全局变量:

$db = Mysql2::Client.new #...

连接池只是在应用程序的生命周期内跨多个线程/纤程共享少量连接的一种方法。据我所知,Java(JVM)不共享进程之间的连接。

不过,有一个通用的目的Ruby 连接池库 https://github.com/mperham/connection_pool.

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

ruby 中的数据库连接池 的相关文章

随机推荐

  • 设置UIView子类的背景颜色不起作用

    我正在尝试更改 UIView 子类之一的背景颜色 因为某些原因self backgroundColor UIColor whiteColor 当我把它放在我的 id initWithFrame CGRect frame视图内的方法 视野始终
  • 调试仅生产错误的过程是什么?

    首先我要说的是 我对这个话题非常无知 我什至不知道这个问题是否有客观的答案 如果最终结果是 不 我将删除或投票关闭该帖子 场景如下 我刚刚编写了一个小 Web 服务 它可以在我的机器上运行 它可以在我团队领导的机器上运行 据我所知 它可以在
  • RtsEnable 或 DtrEnable 属性是否发送信号?

    我想知道如果我将这些放入代码中 计算机是否会向设备发送任何类型的信号 SerialPort myport new SerialPort COM1 myport DtrEnable true myport RtsEnable true 我需要
  • 无法在 Mac 上使用 ARC 来使用 respondsToSelector

    当我打电话时respondsToSelector在 ARC 环境中 我收到以下错误消息Automatic Reference Counting Issue No known instance method for selector resp
  • sqlite3:在 Windows 10 上找不到命令 Python 3

    我在Windows 10上安装了Python 3 6 5 我看到 Python Python36 Lib目录中有一个sqlite3文件夹 我将Python PATH 添加到环境变量中 但是 我无法从 Powershell 或 Git Bas
  • 关于C++复制构造函数调用的问题

    我试图找出这两行代码之间的区别 我们得到的 Count 是我们的类名 C1 和 C2 是该类的对象 没有给出如何以及何时声明这些类的信息 Count C2 C1 Statement 1 Count C2 C1 Statement 2 没有提
  • PHP 从函数中获取变量

    function first foreach list as item variable item gt ID item gt title gives varible 10 some text 10 can be replaced with
  • 使用密钥大小小于 2048 的 RSA 安全密钥创建 JWT 令牌时出错

    我在尝试创建时遇到异常JWT https jwt io C Web API 应用程序中的令牌 测试环境 平台 带有 net框架的Windows 10 x64 4 6 1 jwt NuGet 包 System IdentityModel To
  • Vuejs 3 和 Bootstrap 5 模态可重用组件以编程方式显示

    尝试使用 vuejs 3 和可组合 API 创建一个基于 Bootstrap 5 的 半 可重用模态组件 设法让它部分工作 给定 主要是标准 Bootstrap 5 模式 但基于 show 属性添加类 以及正文和页脚中的插槽
  • 出于验证目的迭代方法的参数

    我一直在想 能够做这样的事情会很有用 例如 检查参数是否为空引用并最终抛出异常 这将节省一些输入 并且如果添加了新参数 就不可能忘记添加检查 好吧 除非你算一下 public void Foo string x object y Strea
  • 在运行时获取布局高度和宽度android

    如何获取在 xml 中定义为 fill parent 的高度和宽度的线性布局的宽度和高度 我尝试过 onmeasure 方法 但我不知道为什么它没有给出准确的值 在 oncreate 方法完成之前 我需要在 Activity 中使用这些值
  • 训练误差和测试误差相差多少才被认为是合适的? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在研究回归问题 我使用 ad boost 和决策树进行回归 并使用 r 2 作为评估指标 我想知道训练 r 2 和测试 r 2 之间的差异有
  • 解析 Roslyn 中的参数类型

    我正在使用 Roslyn 来实现自定义业务规则 目前 我有点卡住了 我必须在调用方法时验证参数的类型 验证该方法正在被调用或包含参数时没有问题 我已经通过使用 GetSymbolInfo 来获取当前语法的符号来解析 IdentifierNa
  • 获取“sed 错误 - 非法字节序列”(在 bash 中)[重复]

    这个问题在这里已经有答案了 进行一些流编辑以更改令人讨厌的 Parallels 图标 它的开发很差 并且嵌入到应用程序本身中 而不是作为图像文件 所以我找到了这个 sed 命令 它有一些很好的反馈 sudo sed i bak s Para
  • Python:检查负数

    我试图向该字符串添加一段代码以检查第一个位置是否有负数 如果代码识别出负数 则应返回 False 我在用户输入命令中遇到 int 和 str 问题 抱歉 Python 新手 def is number S if s lt 0 print F
  • grails 2.3.4 与 Angular js 结合的智能文件夹结构

    在不使用 grails angularjs 插件的情况下 grails 2 3 4 与 angularjs 结合的智能文件夹结构是什么 目前我已将所有内容打包到webapp folder 组织目录的方法有很多 但是 我们使用的方式 我将其称
  • 如何禁用和启用 android ScrollView 上的滚动? [复制]

    这个问题在这里已经有答案了 我是一名android开发人员 我也想使用ScrollView 这个ScrollView需要一段时间禁用滚动 一段时间启用滚动 但是我无法禁用滚动 如何实现它 请帮助我 我还尝试使用一些代码 例如 s fullp
  • 在循环期间删除列表中的项目

    我有下面的代码 我正在尝试从列表中删除两个字符串predict strings and test strings如果其中一个已在另一个中找到 问题是我必须将它们分开并检查另一个字符串中是否存在一个字符串的 部分 如果存在 那么我只是说存在匹
  • Matlabpool打开worker非常慢

    我刚刚组装了一个新设备 i7 4770K 512gb SSD 16gb DDR3 2133 mhz ram 并安装了 MATLAB r2013a 当我调用 matlabpool 命令时 需要花费很长时间才能打开每个单独的工作线程 您在任务管
  • ruby 中的数据库连接池

    我刚刚开始使用 Ruby 正在使用 Sinatra 但找不到在请求之间共享数据库连接的方法 我来自 Java Web 开发 你必须做的基本事情之一就是池化数据库连接 所以我确信 Ruby 中存在类似的东西 但我只是找不到它 ActiveRe