2011-08-12 36 views
7

Làm cách nào để chúng tôi hết hạn bộ nhớ cache trang trên nhiều máy chủ ứng dụng chạy phía sau trình cân bằng tải? Tôi đã thử triển khai trình quét bộ nhớ cache, nhưng nó chỉ quét bộ nhớ cache trên máy chủ ứng dụng nhận yêu cầu. Các trang được lưu trong bộ nhớ cache được lưu trữ trong thư mục công cộng.hết hạn bộ nhớ cache trên trang trên nhiều máy chủ ứng dụng

Trả lời

0

Bạn có thể thông báo cho tất cả các máy chủ để quét bộ nhớ cache (ví dụ thông qua một URL đặc biệt hoặc cơ sở dữ liệu, trong trường hợp này bạn cần một công việc kiểm tra db thường xuyên và làm mất hiệu lực bộ nhớ cache). một cách thường xuyên thông qua một cronjob (đề nghị bạn sử dụng whenever).

Chỉnh sửa: Một giải pháp khác là chia sẻ thư mục công khai trên tất cả các máy thông qua NFS hoặc tương tự như vậy. Bằng cách đó, mọi máy chủ đều có thể làm mất hiệu lực bộ nhớ cache cho tất cả các máy.

0

Với giả định rằng bạn có thể để máy chủ ứng dụng của mình truy cập vào một kho lưu trữ tệp chung, bạn có thể thay đổi vị trí trong đó các cửa hàng lưu trữ bộ nhớ cache. Bằng cách đó, khi bạn hết hạn bộ nhớ cache, nó sẽ được phản ánh trên tất cả các máy chủ ứng dụng. Trong cấu hình của bạn, chỉ cần thêm:

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

Đó có lẽ là cách dễ nhất. Có những phương pháp khác cũng như một máy chủ memcached.

Thông tin thêm tại đây: http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-filestore

Các vấn đề liên quan