Запустить скрипт рейка для определенного промежутка времени - PullRequest
1 голос
/ 04 января 2012

Мне нужно запустить скрипт рейка на определенное время. Например, 10 минут, 1 час и т. Д., И если сценарий еще не завершен, остановите его.

Зачем мне это нужно? Потому что через несколько часов память заполнится!

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 04 января 2012

Я думаю, вы должны сначала рассмотреть, что заставляет этот скрипт использовать так много памяти.

(одна вещь - это загрузить множество записей из базы данных и добавить их в массив)

Но, предположив, что вы уже сделали все, что могли, я бы сделал что-то вроде этого.

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

Но на самом деле, я сначала попробую разобраться, почему у вас утечка памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...