Я думаю, вы должны сначала рассмотреть, что заставляет этот скрипт использовать так много памяти.
(одна вещь - это загрузить множество записей из базы данных и добавить их в массив)
Но, предположив, что вы уже сделали все, что могли, я бы сделал что-то вроде этого.
LIVE_FOR = 1.hour
def run!
finish_before = LIVE_FOR.from_now
array = get_the_array # some big collection to operate on
array.each do |object|
while Time.now < finish_before
...
end
end
end
Но на самом деле, я сначала попробую разобраться, почему у вас утечка памяти.