带有急切初始化的单例

发布于 2024-10-11 18:01:54 字数 368 浏览 2 评论 0原文

我的 X 类需要很多时间来初始化自身。我想使该类成为单例,并在 Rails 应用程序启动时强制创建它。

我已经创建了单例:

class X
  @@instance = nil

  def self.instance
    if @@instance.nil?
      @@instance = X.new
      puts 'CREATING'
    end

    return @@instance
  end

  private_class_method :new
end

问题是每次我使用这个类时,我都会在日志中看到“CREATING”。我尝试将类的创建放在 initializers 目录中,但它也不起作用。

I have class X that takes much time to initialize itself. I want to make that class singleton and force its creation when rails application starts.

I've made the singleton:

class X
  @@instance = nil

  def self.instance
    if @@instance.nil?
      @@instance = X.new
      puts 'CREATING'
    end

    return @@instance
  end

  private_class_method :new
end

The problem is that every time I use this class I see 'CREATING' in logs. I've tried to put creation of class in initializers directory but it doesn't work either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深巷少女 2024-10-18 18:01:54

问题是开发环境中的 Rails 不会缓存类,并且每个请求都会重新加载应用程序代码。

The problem was that Rails in development environment doesn't cache classes and application code is reloaded every request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文