首页 > 解决方案 > 为整个 Rails 服务器保留一个对象实例?

问题描述

本质上,我有一个与本地 RPC 服务器交互的简单类。调用它RPC_Class。该网站将托管的每个用户都会发出需要 Rails 服务器调用 RPC 客户端的请求。

这个类需要被实例化

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

然后我打电话给它

puts rpc.getbalance

现在,有三个选项:

我认为选项三是最具表现力的选项。我在哪里初始化这个类,以便我可以在整个服务器代码中使用它?

标签: ruby-on-railsrpcjson-rpc

解决方案


我认为你应该使用 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 并从第二次调用开始返回缓存的响应。


推荐阅读