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 に答える