0

我正在构建一个分类器 API,以作为独立服务插入到我们不断发展的平台中。基本上我想发送一段文本并在其上运行一些专有的魔法并用 json 回复。

容易,对吧?

问题是我想在文本上运行一些方法,这些方法需要将大哈希加载到内存中以进行操作。现在,每次发送要操作的新文本时,我都必须初始化这些对象。

设置我可以在控制器中访问的对象的全局实例的最佳方法是什么,而不必为每次调用重新创建它?

这应该在初始化程序中还是有办法将其绑定到特定的控制器?

4

2 回答 2

0

您可以使用全局变量,但严重不推荐 - 请务必阅读Simone Carletti 的这个答案。我应该补充一下 - 他指的是使用更强大的缓存解决方案,这是我推荐的。

于 2012-04-30T18:35:26.373 回答
0

您在这里有几个选择。

答:您可以在 rails 启动时将哈希加载到一个常量中,使它们可用于整个应用程序,使其仅加载一次。您可以通过在初始化程序中添加常量来做到这一点。

B. 将哈希加载到 memcached 中并重新编写逻辑以查询 memcached 而不是哈希。这会稍微复杂一些,但如果我这样做,这将是我的首选方法。我会有一个 rake 任务,将文件加载到 memcached 中,然后在实例或 rails 之间共享 memcached 的实例。这将减少所需的内存开销。只要确保将过期时间设置为 nil。

于 2012-04-30T20:22:37.960 回答