Ruby on rails 使用连接池块在rails中执行吸盘穿孔测试会导致连接超时
提前感谢您的友好回复 在工作中,我们使用gem作为rails应用程序,以异步方式发送电子邮件和其他我们想要做的事情 我们实现了几个参与者,没有任何问题,甚至使用推荐的配置成功地为他们编写了一些测试(在规范中要求Ruby on rails 使用连接池块在rails中执行吸盘穿孔测试会导致连接超时,ruby-on-rails,ruby,activerecord,sucker-punch,Ruby On Rails,Ruby,Activerecord,Sucker Punch,提前感谢您的友好回复 在工作中,我们使用gem作为rails应用程序,以异步方式发送电子邮件和其他我们想要做的事情 我们实现了几个参与者,没有任何问题,甚至使用推荐的配置成功地为他们编写了一些测试(在规范中要求sucker\u punch/testing/inline,并使用截断作为数据库清理策略) 在我们决定实施的最后一个演员之前,一切都很顺利。它与其他测试套件没有什么不同,但是现在,在运行测试套件时,会引发ActiveRecord::ConnectionTimeoutError 我在互联网上
sucker\u punch/testing/inline
,并使用截断作为数据库清理策略)
在我们决定实施的最后一个演员之前,一切都很顺利。它与其他测试套件没有什么不同,但是现在,在运行测试套件时,会引发ActiveRecord::ConnectionTimeoutError
我在互联网上搜索了一个解决方案,但什么也没找到。大多数答案(如)建议使用ActiverRecord::Base.connection\u pool.with\u connection
方法将块传递给它。我们已经在做了
我能想到的唯一一件事是,我们正在处理演员的错误,拯救例外,就像这样:
def perform
ActiveRecord::Base.connection_pool.with_connection do
begin
... # do something
rescue SomeException => e
... # handle exception
end
end
end
但是考虑到这一点并不成问题,因为与_connection
有一个确保释放它的方法
我将开始一个问题的吸盘冲压,并将更新这个问题,如果我有一些消息
有问题的版本可以等待,但这也让我想知道我们是否在生产中遇到了同样的问题
干杯,
阿尔达纳
编辑
gem的作者告诉我,代码显然没有问题,并建议增加池大小。我将使用这种方法,如果错误仍然存在,我们将更改代码的某些部分,使其不使用punch