0

我想无限期地运行一个脚本。如下所示,看起来我当前的脚本会导致内存泄漏。此外,我想保留 @time_value 数组,因为我需要循环遍历每次新运行的值。

  class Data

    def initialize
      first_method
      @time_value = [30, 60, 90]
    end

    def first_method

      # get some data; takes about 1 hour
      second_method
    end

    def second_method
      #process the data
      first_method
    end
  end

  d = Data.new
4

1 回答 1

2

永久递归可能不仅会继续消耗内存,而且最终会因堆栈溢出而失败。将您的无限期处理更改为一个简单的循环。

class Data
  def initialize
    @time_value = [30, 60, 90]
  end

  def run_forever
    while true
      first_method
      second_method
    end
  end

  def first_method
    # get some data; takes about 1 hour
  end

  def second_method
    #process the data
  end
end

Data.new.run_forever
于 2012-06-20T23:08:03.910 回答