Ruby守护进程使瞬态Ruby实例的对象保持活动状态

Ruby是否提供了一种机制来在不同的运行Ruby进程之间共享变量(更重要的是,类对象和我认为对此有用的任何其他数据抽象)?

例如,如果我有一个实例化的类,初始化并仔细调整到某个状态,我希望该状态全局可用于我所有其他独立的Ruby和Irb运行全天,超过最初使用的进程的生命周期它。

我现在正在考虑有效解决这个问题的一个场景是创建一个微型Ruby脚本,仅仅作为我选择的持久对象和变量的守护者 ,并使用守护进程gem或类似物进行守护 。 设置在早上1点,在所有事情结束时在晚上拆除。

在整个一天中,另一个Ruby程序的许多实例 – 包含我的实际业务逻辑的程序 – 将来去能够使用和操作我在上面的守护进程中保持活动的所选对象。

我应该学习如何将复杂对象序列化到磁盘吗? (实际上更喜欢RAM不是磁盘,因为它无论如何都是暂时的,并且重新创建它只需花费很多时间)

你可能正在寻找像memcache ( Gem )或redis ( Gem )这样的东西。

您可能还对redis-objects感兴趣。

Ruby的磁悬浮实现似乎非常适合您的需求,因为它提供了持久的分布式Ruby对象。

MagLev VM充分利用GemStone / S JIT到本机代码性能, 分布式共享缓存 ,完全ACID事务和企业级NoSQL数据管理function,以提供强大而持久的编程平台。 它可以透明地管理比存储器中更大量(太字节)的数据和代码对可以存储和执行的对象,类,块,线程或延续的类型没有限制

但根据项目的规模,这可能有点过分。