我正在写一个 gem,我必须分叉两个进程,它们正在启动两个 webrick 服务器。我想通过基类的类方法启动这些服务器,因为应该只有这两个服务器在运行,而不是多个服务器。在运行时,我想在这两个服务器上调用一些方法来更改变量。
我的问题是,我无法通过基类的类方法访问分支的实例变量。此外,我不能在我的基类中使用线程,因为在后台我使用的是另一个不是线程安全的库。所以我必须将每台服务器分叉到它自己的进程。
我尝试使用类变量,例如@@server
. 但是当我尝试通过基类访问这些变量时,它是nil
. 我读到在 Ruby 中不可能在 fork 之间共享类变量,对吗?
那么,有没有其他方法可以解决这个问题?我想过使用单例,但我不确定这是否是最好的主意。