gpt4 book ai didi

ruby-on-rails - Resque worker 在 after_fork 中重新建立连接的性能影响

转载 作者:可可西里 更新时间:2023-11-01 11:43:12 25 4
gpt4 key购买 nike

我试图了解这样做对性能的影响:

Resque.before_fork do
Rails.logger.info "in resque.rake before fork"
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end

Resque.after_fork do
Rails.logger.info "in resque.rake after fork"
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end

这样做不会显着影响性能,因为我们不再保持与数据库的持久连接并在每项工作中一次又一次地这样做。就我而言,工作所做的工作非常小。它所做的只是插入一条记录,如下所示:

Foo.create(:name => "Hello World")

由于工作量很小,我想知道在工作中这样做是否真的会影响性能。你的想法?

最佳答案

我的理解是,这些语句的存在是为了防止在 Resque 作业失败并需要重试时连接到数据库失败。参见 this issue ...听起来这主要是 postgres 的问题,但也可能是其他数据库的问题。

我的直觉告诉我,性能影响将是最小的,但您总是可以尝试删除这些行并在将其移至生产环境之前在暂存环境中对其进行测试一段时间,但我个人会保留它.

关于ruby-on-rails - Resque worker 在 after_fork 中重新建立连接的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com