Làm thế nào để xây dựng lại một trang được lưu trữ khi nó hết hạn?


7

Tôi đang sử dụng bộ nhớ đệm khung nhìn sau khi đọc phần hỏi đáp tuyệt vời này và nhận được kết quả tốt. Tôi phải giữ cho hết hạn ngắn vì tôi đang hiển thị "bình luận cuối cùng" trong chế độ xem và những thay đổi đó thường xuyên.

Tôi đang suy nghĩ về việc sử dụng bộ đệm nội dung lượt xem để hết hạn bộ đệm mỗi khi thêm nhận xét. Hoặc hành động bộ nhớ cache để làm điều đó với các quy tắc.

Những gì tôi muốn làm là xây dựng lại bộ đệm ngay lập tức sau khi nó hết hạn? Tôi đọc mô-đun boost đó cung cấp điều đó nhưng tôi cần một giải pháp cho khách truy cập được xác thực (đã sử dụng Varnish cho ẩn danh).

Các bộ nhớ cache duyên dáng mô-đun dường như lời đề nghị đó, nhưng chỉ có 20 cài đặt (cộng với đòi hỏi một vài module khác).

Có giải pháp nào khác cho phép hết hạn bộ đệm và "làm nóng" nó ngay lập tức không?


Drupal 6 hay 7? Bạn đang sử dụng bộ đệm phụ nào? cơ sở dữ liệu, memcache? Varnish ở phía trước?
mikeytown2

7 với memcache và Varnish
uwe

1
Tôi có hiểu đúng không khi bạn chủ yếu muốn xem trước các lượt xem chứ không phải toàn bộ trang?
mojzis

quan điểm trước sẽ là một khởi đầu tuyệt vời.
uwe

Câu trả lời:


4

Nếu bạn biết những chức năng nào cần chạy để làm ấm bộ đệm, hãy kiểm tra omepl . omeprl_queue_background_callback () là chức năng để xem xét sử dụng. Ví dụ đơn giản về cách gọi watchdog trong nền http://drupalcode.org/project/httprl.git/blob/24a88acd2180191d0b54696e577f14615e37302d:/README.txt#l268

Về mặt bộ nhớ cache véc ni duyên dáng, điều này có một ví dụ hay: https://www.varnish-cache.org/trac/wiki/VCLExampleGrace Ví dụ về việc sử dụng: http://groups.drupal.org/node/63203


Cảm ơn. Vì vậy, điều này sẽ tương tự như sử dụng wget hoặc curl để tìm nạp một trang để có được bộ nhớ cache? Nếu vậy, tôi không chắc chắn về cách tôi sẽ hết thời gian với bộ đệm.
uwe

2

Boost cho Drupal 7 hoạt động rất tốt và nhờ vào mô hình con Crawler mới và mô-đun hết hạn bộ nhớ cache, bạn có thể hết hạn điều kiện và chủ động lưu lại bộ đệm bất kỳ lựa chọn nào trong các trang của bạn. Với thiết lập như thế này, bạn không cần các mô-đun như Chế độ xem nội dung bộ đệm vì bạn có thể đạt được hành vi tương tự với pha chế ở trên và không chỉ cho các chế độ xem (Hết hạn bộ nhớ cache tích hợp với Quy tắc, vì vậy khả năng là vô tận). Có một công thức đầy đủ để làm việc này tại trang này .


1

Có một Mô-đun khá mới được gọi là https://www.drupal.org/project/recacher Nó hoạt động cùng với https://www.drupal.org/project/Exirehttps://www.drupal.org/ dự án / omeprl_spider

Thay vì thu thập lại mọi thứ, nó chỉ lưu lại các nút đã bị loại bỏ khỏi Mô-đun hết hạn.

Trong phong cảnh của tôi, nó sẽ hoạt động như thế: On Node Change / Tạo -> Hết hạn -> Thanh lọc từ Nginx -> re-Cache với omeprl_spider.

Bằng cách đó, bộ đệm sẽ tươi trong hầu hết các trường hợp.


0

Bạn nên cân nhắc sử dụng mô-đun hành động bộ đệm kết hợp với mô-đun tùy chỉnh có thể sử dụng lại mã từ mô-đun bộ đệm bộ đệm .

Sự nóng lên của bộ đệm có thể được thực hiện bằng cách chuyển các url đã thay đổi / mong muốn thành nhiều người dùng khác nhau (Một người dùng cho mỗi quy tắc). Bạn sẽ cần thực hiện một số cuộc gọi cURL cùng với thông tin đăng nhập của người dùng. Mô-đun bộ đệm ấm có mã cho cách thực hiện cuộc gọi này.

Vì vậy, bằng cách sử dụng mô-đun Bộ đệm hành động, bạn có thể nói khi nào bộ đệm cho một trang cụ thể bị hỏng và trong hành động tiếp theo, bạn có thể gọi hàm từ mô-đun tùy chỉnh của mình để làm ấm bộ đệm cụ thể đó hoặc bộ url.


0

Tôi nghĩ rằng lựa chọn tốt nhất của bạn là Edge Side Bao gồm . Hãy xem mô-đun tích hợp Edge Side Bao gồm . Đây là một trích dẫn về nó (từ trang dự án của mô-đun):

ESI - hay Edge Side Bao gồm - là một giải pháp bộ nhớ đệm hiệu suất cao cho người dùng Xác thực nhưng cũng có thể hữu ích cho người dùng Ẩn danh.

Thông thường, các trang được cá nhân hóa cho người dùng được xác thực (ngay cả các cá nhân nhỏ, chẳng hạn như một khối có nội dung "Đã đăng nhập như manarth") sẽ ngăn các proxy ngược (có thể dễ dàng thực hiện nhanh hơn 100 lần so với Drupal) vì lưu trữ tin nhắn dành cho một người dùng sau đó có thể được nhìn thấy bởi một người khác.

ESI là một tiêu chuẩn W3C để giải quyết vấn đề này. Nội dung được cá nhân hóa được thay thế bằng thẻ ESI - <esi:include src="http://example.com/esi/block/xxxxxx" />- giống hệt nhau cho mọi người dùng; Trang sau đó có thể được lưu trữ. Các thiết bị cạnh như Varnish lấy URL ESI và hợp nhất nội dung của nó với trang được lưu trong bộ nhớ cache (và nội dung của URL ESI đó cũng có thể được lưu trong bộ nhớ cache).

Kỹ thuật này có thể dễ dàng cải thiện hiệu suất gấp 10, 100 lần, thậm chí có thể hơn.


1
Mặc dù ESI là một giải pháp thay thế tốt cho bộ đệm toàn bộ trang, OP yêu cầu một giải pháp để làm ấm bộ đệm trang. Không cho các giải pháp bộ nhớ đệm thay thế.
Pierre Buyle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.