为整个 Rails 服务器保留一个对象实例?

Keep an instance of an object for the whole Rails server?

本质上,我有一个与本地 RPC 服务器交互的简单 class。称之为RPC_Class。 网站托管的每个用户都会发出要求 rails 服务器调用 RPC 客户端的请求。

这个class需要这样实例化

rpc = RPC_Class.new('localhost:4325')

然后我调用它

puts rpc.getbalance

现在,有三个选项:

我认为选项三是最有效的选项。我在哪里初始化这个 class 以便我可以在整个服务器代码中使用它?

我认为您应该使用 Rails 缓存来处理这个用例。您可以在第一次调用 API 时缓存响应,然后将缓存的响应用于您收到的所有调用。 你可以这样写一个方法:

def fetch_rpc_balance
  Rails.cache.fetch("rpc_balance", expires_in: 24.hours)
    rpc = RPC_Class.new('localhost:4325')
    puts rpc.getbalance
  end
end

现在,如果您在逻辑中使用 fetch_rpc_balance 方法,它将仅在第一次调用时进行 API 调用,并在第二次调用后 return 缓存响应。