Ruby планировщик и пауза

Я работаю над парсером для веб-сайта, который закрывает свой сайт/базу данных каждую ночь примерно с одиннадцати вечера до пяти утра. Так как создание скребка, над которым я работаю, занимает около 70 часов, а я очень тороплюсь, мне приходится вставать в 4:30 каждое утро... может быть, есть способ получше...

Используя рубиновый драгоценный камень, такой как «всякий раз», вы можете установить время для запуска кода, например:

every :day, :at => ['5am'] do

and then the code

Однако это не приостанавливает выполнение кода. Как бы вы сделали паузу в коде с 23:00 до 5:00 следующего дня, продолжили до 23:00, сделали паузу до 5:00 следующего дня и так далее?


person Seeb    schedule 15.04.2013    source источник


Ответы (1)


Если бы вы предоставили еще несколько деталей, например, какой фреймворк или методы вы используете, вам было бы легче помочь.

Однако если вы используете что-то на основе EvenMachine, можно приостановить EventMachine::Connection's. Вы можете просто пройти через все свои соединения с помощью «когда угодно» и приостановить все исходящие соединения, а затем снова пройти через них и возобновить соединения.

person jbr    schedule 22.04.2013
comment
Привет, Jbr, я работаю с просто ruby ​​и rubygems nokogiri, open-uri, watir-webdriver, csv и когда угодно. Все, что я хочу сделать, это запустить мой рубиновый код с определенного времени дня и остановить определенное время дня и продолжить на следующий день. Автоматизированный. Для запуска моего кода требуется несколько дней, и он должен останавливаться каждую ночь, и я хочу автоматизировать этот процесс, сказав коду: запускать с 5 утра до 11 вечера каждый день. - person Seeb; 25.04.2013