星期五,2024 年 2 月 9 日

Rails Foundation Docs,Query Logs source_location,Dockerfile 获得 jemalloc

作者:zzak

大家好,我是 zzak。让我们探索本周 Rails 代码库中的更改。

Rails Foundation Docs
一支团队 已成立 来改善现有的 Rails 文档。此项目中的 PR 将开放一周,以供社区审查。本周开放

  • ActiveJob.perform_all_later
  • Action Text
  • Action Mailbox

更多精彩内容即将推出!

正确同步 Mysql2Adapter#active?TrilogyAdapter#active?
以及 disconnect!verify!
通常这不是一个大问题,因为不得在不同线程之间共享连接,但必须在运行事务测试或系统测试时使用,并可能会导致 SEGV。

实现 “Rails::TestUnitReporter#prerecord”
通过将此方法添加到 Rails TestUnitReporter 类,Minitest 会找到它并在调用测试之前调用它,从而允许提前打印测试名称。
此方法通过启用详细信息模式来调试缓慢且卡住的测试非常有用。通过这种方式,卡住的测试名称会在进程死锁之前打印出来。

修复 JSON 编码 ActiveStorage::Filename
此 PR 修复了一个错误,其中文件名中缺少引号,从而生成了无效的 json。

JSON.generate(foo: ActiveStorage::Filename.new("bar.pdf")) # => '{"foo":bar.pdf}'

支持查询日志标记的 :source_location 标记选项
此 PR 为在使用 Active 记录查询日志 时显示查询在 Rails 日志中定义的位置添加了支持。

# application.rb
config.active_record.query_log_tags_enabled = true
config.active_record.query_log_tags = [ :source_location ]

在默认 Dockerfile 中设置 jemalloc 以优化内存分配
Ruby 使用 malloc 会创建 内存碎片问题,尤其是在使用类似 Puma 的多个线程时。
切换到使用不同模式来避免碎片化的分配器可以大幅度减少内存使用情况。

你可以在 此处 查看完整的更改列表。 过去一周,Rails 代码库中有 18 位贡献者

下次见!

订阅获取这些更新的邮件。