2011-08-12 16 views
7

W jaki sposób tracimy pamięć podręczną stron rails na wielu serwerach aplikacji działających za równoważeniem obciążenia? Próbowałem zaimplementować zamiatarkę pamięci podręcznej, ale to tylko zamiatanie pamięci podręcznej na serwerze aplikacji, który odbiera żądanie. Strony z pamięci podręcznej są przechowywane w publicznym katalogu.Wygaśnięcie pamięci podręcznej rails na wielu serwerach aplikacji

Odpowiedz

0

Możesz powiadomić wszystkie serwery, aby zamiatać pamięć podręczną (na przykład za pomocą specjalnego adresu URL lub bazy danych, w takim przypadku potrzebujesz pracy, która regularnie sprawdza bazę danych i unieważnia pamięć podręczną) lub unieważniasz pamięć podręczną regularnie przez cronjob (sugerujemy użycie whenever).

Edycja: Innym rozwiązaniem byłoby udostępnienie katalogu publicznego na wszystkich komputerach za pośrednictwem NFS lub coś w tym stylu. W ten sposób każdy serwer może unieważnić pamięć podręczną dla wszystkich komputerów.

0

Przy założeniu, że masz możliwość dostępu serwerów aplikacji do wspólnego magazynu plików, możesz zmienić lokalizację, w której szyny przechowują pamięć podręczną. W ten sposób po wygaśnięciu pamięci podręcznej będzie to widoczne na wszystkich serwerach aplikacji. W swojej konfiguracji wystarczy dodać:

config.cache_store = :file_store, "/path/to/cache/directory"

to chyba najprostszy sposób. Istnieją również inne metody, takie jak memcached server.

Więcej informacji: http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-filestore

Powiązane problemy