Медленное развертывание для большого приложения на Rails 3 с использованием Ruby 1.9.2 - PullRequest
4 голосов
/ 01 апреля 2011

Есть три проблемы.

  1. Как и в случае с рейком, задачи капистрано мучительно медленны.При каждом развертывании нам нужно сделать несколько вещей, например перезапустить DelayedJob, убедиться, что Thinking Sphinx обновлен и т. Д. Я читал, что в Ruby 1.9 есть проблема, связанная с необходимостью проверять все пути для каждого запросанадеюсь, это будет исправлено в ближайшее время.Но есть ли какие-то обходные пути для развертывания кэпа?

  2. Также медленно запускаются экземпляры пассажиров, возможно, это та же проблема пути Ruby 1.9, но есть ли обходные пути?1011 *

    Gemfile.lock обновляется при каждом рейке и кол-коле.Это всегда то же самое, что меняется.+/- net-scp

Соответствующее приложение называется Open Active Democracy и находится здесь https://github.com/rbjarnason/open-active-democracy

Ответы [ 3 ]

1 голос
/ 05 сентября 2011

3) Скорее всего, виновником является Gemfile.lock, обновление гемфайла занимает вечность, и его не нужно обновлять каждый раз.

Я бы попробовал вручную выполнить установку пакета.на сервере и посмотреть, что происходит, может быть, у вас нет файла пакета в постоянном месте для Capistrano?Вы также можете попробовать просто добавить net-scp в ваш Gemfile для быстрого исправления.

На моем рабочем сервере это выглядит так:

user@prodmachine:/var/www/railsapp/current/.bundle# cat config 
--- 
BUNDLE_FROZEN: "1"
BUNDLE_DISABLE_SHARED_GEMS: "1"
BUNDLE_WITHOUT: development:test
BUNDLE_PATH: /var/www/railsapp/shared/bundle

2) время запуска, соберите и установитеисправлен 1.9.2, чтобы получить информацию об ускорении загрузки файлов:

http://www.rubyinside.com/get-edge-ruby-faster-loading-ruby-1-9-2-now-4973.html

Вы также можете установить ruby-1.9.2-p290, чтобы ускорить загрузку файлов, что не такнапряжены.

0 голосов
/ 30 мая 2011

Более быстрой альтернативой также может быть использование whiskey_disk , описываемое как "смущающее быстрое развертывание". Это просто и весело, и может быть именно то, что вам нужно.

0 голосов
/ 05 апреля 2011

Когда вы используете несколько серверов с различными ролями, развертывание обычно занимает некоторое время. На развертывание одного из моих более крупных приложений уходит до 10-15 минут. Единственное, что пользователи должны заметить, это когда пассажир перезапускается, что занимает столько времени, сколько требуется для загрузки среды вашего приложения (я не думаю, что с этим можно что-то сделать).

Худшее, что может случиться, - это если ваш интернет отключится во время длительного развертывания, что может привести к нежелательному состоянию. Это случилось со мной, что побудило меня написать captivate, чтобы предотвратить его повторение ...

...