新手问题 如何在 ruby web 应用里创建一个常驻内存保存数据的对象?

steve · 2019年07月03日 · 最后由 Rei 回复于 2019年07月04日 · 1694 次阅读

场景是这样。要调用 openapi,首先要调接口获取 token,token 会过期,所以要定期更新 token。 如果是 java spring 实现,无非是定义一个 XxxService 类,加上@Component注解, 定义一个叫 token 的实例变量,定义一个周期执行的方法来更新 token,这样就 Ok 了。

现在用 ruby sinatra 框架,用$token 全局变量来存储 token,但用全局变量肯定是不好的。坛子 里的 ruby 高手指点下有什么更好的实现方式吗

@yangfeng05 感觉不不太合适,rails-settings-cached 适合存储 key-value 这样的配置数据

用 Rails.cache 存就好了,有 fetch 方法,若无数据则再去获取,配合设置超时时间,缓存的后端可以用 redis,如果你觉得没必要那么重,那用自带的纯内存就好了(副作用是 Rails 进程结束缓存就清空)

@jasl 场景上不太合适,但能用,目前也没找到别的办法

Rails.cache 够用,如果想更可靠点就存数据库。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号