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

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

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

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

共收到 5 条回复

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

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

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

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

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