Tag: connection

在Sidekiq作业结束之前释放ActiveRecord连接

这个问题涉及性能和优化问题,以及实现Sidekiq工作的方式。 假设我们有以下工作流程 def执行 # Step 1 do_things_with_activerecord_db_and_get_some_parameters() # Step 2 step2_perform_an_http_request_with_these_parameters_on_unreliable_server() 结束 在下面的情况中,在步骤1中从池中获取ActiveRecord连接,并且只有在SideKiq的ActiveRecord中间件完成(或失败)作业后,SideKiq才会释放该连接。 由于我们执行请求的步骤2中的外部http服务器不可靠,因此http请求可能需要很长时间甚至超时,因此ActiveRecord连接在所有时间都没有锁定,对吧? 所以我的问题是:打电话是否恰当,有用和安全: ActiveRecord的:: Base.clear_active_connections! 在步骤1和步骤2之间,以便作业自己释放资源并使其可用于其他类似的作业? 或者我错过了关于连接池的一些事情? 这种方法也可以应用于redis连接吗? 谢谢提前!