Postawiłem sobie serwer produkcyjny ( konkretnie: script/server -e production -d -p 80 ) na mongrelu. Wszystko działa bardzo dobrze, jednak używam w swojej aplikacji pluginu whenever.
Moje pytanie brzmi w jaki sposób po wywołaniu komend z crontaba (konkretnie dodawanie rekordów do bazy) zrobić update na serwerze produkcyjnym? Puki co muszę wchodzić na SSH, wpisywac killall ruby i stawiać na nowo w w/w komendzie serwer. Wtedy uaktualniają się zmiany. Teraz to trochę zautomatyzowałem, tworząc crona do tego, ale moim zdaniem nie tak to działa, więc chciałbym zapytac o poprawną drogę
Zmienione dane są widoczne w ActiveRecord natychmiast bez względu na to skąd zmiana pochodzi. Problem może istnieć jeśli wczytujesz te dane raz przy starcie aplikacji i trzymasz w cache. W takim wypadku odpowiedź jest prosta: nie rób tego. Jeśli Twojej aplikacji wystarcza jeden mongrel to spokojnie może takie dane wczytywać per-request.
Sposób deploymentu, który pokazałeś słabo się sprawdza przy poważniejszych aplikacjach i częstych zmianach w kodzie. Przestaw się na pasażera (passenger), wtedy reload aplikacji to ‘dotknięcie’ (man touch) jednego pliku. Zainteresuj się też capistrano - raz okiełznane pozwala na błyskawiczny deployment.