Trong quản trị viên Magento trong Quản lý bộ nhớ cache, điều đó có nghĩa là gì khi nó hiển thị bộ nhớ cache bị vô hiệu? Làm thế nào để Magento biết một bộ nhớ cache bị vô hiệu? Đặc biệt, tôi tự hỏi về HTML Block cache. Điều kiện nào sẽ khiến bộ nhớ cache này hiển thị như bị vô hiệu?Bộ nhớ cache "không hợp lệ" có nghĩa là gì trong Magento?
Trả lời
Trong Magento, bất cứ khi nào bạn thực hiện thay đổi đối với sản phẩm, khối tĩnh, v.v., nó nhận ra rằng dữ liệu trong cơ sở dữ liệu không còn giống như dữ liệu trong bộ đệm. Thật không may, Magento không nhận ra dữ liệu bộ nhớ cache khác nhau, chỉ một cái gì đó khác.
Bạn sẽ cần phải đi vào hệ thống > Quản lý bộ nhớ cache và làm mới các loại bộ nhớ cache không hợp lệ.
EDIT:
Tạo một module (hoặc sử dụng một mô-đun hiện có) mà bạn có thể sử dụng để thiết lập một công việc định kỳ cho làm mới bộ nhớ cache. Tạo một tập tin: {namespace}/{} modulename /Model/Observer.php
Bên trong tập tin đó:
<?php
class <namespace>_<modulename>_Model_Observer {
public function refreshCache() {
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $blah) {
Mage::app()->getCacheInstance()->cleanType($type);
}
} catch (Exception $e) {
// do something
error_log($e->getMessage());
}
}
}
Trong của mô-đun của bạn etc/config.xml:
<config>
...
<crontab>
<jobs>
<{modulename}_refresh_cache>
<schedule><cron_expr>* * * * *</cron_expr></schedule>
<run><model>{modulename}/observer::refreshCache</model></run>
</{modulename}_refresh_cache>
</jobs>
</crontab>
...
</config>
Bây giờ là miễn là cron được cấu hình đúng trên máy chủ của bạn, bộ nhớ cache sẽ cập nhật tự động, thường xuyên như cron chạy.
2015: AOE Sheduler có thể xóa bộ nhớ cache bằng cronjob. Thay đổi JOB
"core_clean_cache"
từ 30 2 * * *
(Daily 2:30) để 59 * * * *
(Mỗi 59 phút).
Câu trả lời Guy @Magento là chính xác, nhưng tôi nghĩ giải pháp này bên dưới có thể giúp bạn làm mới chỉ những bộ nhớ cache bị vô hiệu hóa trên Magento.
Tôi sử dụng Bitnami Magento Stack, đối với tôi giải pháp này dưới đây là tốt nhất tôi đã tìm thấy.
Tôi đã cố gắng tạo tệp Mage_Shell_Class php, nhưng không thành công (mảng bộ nhớ cache không hợp lệ luôn trống khi chạy, không có vấn đề gì và tôi thực sự không tưởng tượng tại sao).
tôi đã tạo ra một file php 'sample.php':
<?php
require 'app/Mage.php';
$invalid = Mage::app()->getCacheInstance()->getInvalidatedTypes();
foreach($invalid as $i)
{
Mage::app()->getCacheInstance()->cleanType($i["id"]);
}
Tôi đã đặt nó vào thư mục gốc Magento, và để bắt đầu nó tôi sử dụng một cronjob chạy dưới tài khoản root.
Vì vậy, để tạo cronjob trên người dùng root:
sudo crontab -u root -e
Và đây là dòng lệnh của tôi để chạy nó:
* * * * * . /opt/bitnami/scripts/setenv.sh ; /opt/bitnami/php/bin/php /opt/bitnami/apps/magento/htdocs/sample.php >> /var/log/cron/cron.log 2>&1
Một số bộ phận trên dòng này là rất cụ thể cho vấn đề của tôi :
- Vì nó vừa làm mới bộ đệm không hợp lệ nên tôi đã quyết định chạy mỗi phút.
- setenv.sh là một tập lệnh giúp tôi đặt môi trường khi xử lý ngăn xếp bitnami cụ thể này.
- Để lấy đầu ra của tập lệnh này, tôi đã sử dụng phần cuối ">> /var/log/cron/cron.log 2> & 1" này để xuất các lỗi vào thư mục mà tôi đã tạo (/ var/log/cron) và đã cấp quyền chính xác cho nó.
Có thể bạn cần thay đổi lệnh dòng cron, nhưng tôi nghĩ điều này sẽ giúp bạn.
- 1. "Cũ, hợp lệ, lưu trữ" có nghĩa là gì khi truy cập bộ nhớ cache trong Rails?
- 2. Xóa bộ nhớ cache Magento
- 3. Điểm kết hợp bộ nhớ cache là gì?
- 4. Sự khác biệt giữa không có bộ nhớ cache và không lưu trữ trong bộ nhớ Cache-control là gì?
- 5. Sự kiện bộ nhớ cache perf có ý nghĩa gì?
- 6. Bộ nhớ cache khởi động là gì?
- 7. Mục nhập bộ nhớ cache cryptic GC có nghĩa là
- 8. Magento bộ nhớ cache không nhận được xóa
- 9. sự khác biệt giữa bộ nhớ cache l1 và bộ nhớ cache l2 là gì?
- 10. Tệp bộ nhớ cache byte GWT là gì?
- 11. Mở tệp trong bộ nhớ nghĩa là gì?
- 12. Tiêu đề Bộ nhớ cache kiểm soát lặp lại; hợp lệ hay không? (Nginx)
- 13. UIwebview không có bộ nhớ cache
- 14. Lần truy cập bộ nhớ cache và bộ nhớ cache bị thiếu là gì? Tại sao ngữ cảnh chuyển đổi sẽ gây ra bộ nhớ cache bỏ lỡ?
- 15. Làm thế nào để bộ nhớ cache một bộ sưu tập trong Magento?
- 16. Sự khác nhau giữa bộ nhớ đệm và bộ nhớ cache trống là gì?
- 17. Bộ nhớ cache, tắt bộ nhớ đệm
- 18. Gỡ lỗi bộ nhớ cache - Có giải pháp chung không?
- 19. Tỷ lệ truy cập bộ nhớ cache bảng MySQL thấp
- 20. Không gian trong bộ chọn jquery có nghĩa là gì?
- 21. Cách đúng để xóa bộ nhớ cache trong Rails mà không cần quét dọn là gì
- 22. Phân bổ bộ nhớ tĩnh trong bộ nhớ cache CPU trong c/C++: có thể không?
- 23. "Đồng bộ" nghĩa là gì trong Java?
- 24. "Tỷ lệ thoát trang bộ nhớ" là gì
- 25. Gỡ bỏ bộ nhớ cache khỏi bộ nhớ cache L1 khi xóa L2
- 26. Quản lý kết hợp bộ nhớ cache DMA
- 27. WeakReference có tạo bộ nhớ cache tốt không?
- 28. Grails \ Hibernate: Để lưu bộ nhớ cache hoặc không lưu vào bộ nhớ cache?
- 29. Valgrind có nghĩa là gì bởi "chuyển đến địa chỉ không hợp lệ" ở đây?
- 30. Bộ nhớ cache kết quả Doctrine không lưu vào bộ nhớ cache truy vấn
Tôi hiểu cách làm mới bộ nhớ cache, mà tôi làm khi tôi thấy rằng nó đã bị vô hiệu. Tôi chỉ không thực sự hiểu làm thế nào nó biết rằng bộ nhớ cache đã bị vô hiệu. Và liên quan - tại sao nó không tự động làm mới bộ đệm nếu nó biết nó không hợp lệ? Có bất kỳ rủi ro nào để làm mới bộ nhớ cache không? – localfilmmaker
Bất cứ khi nào bạn thực hiện thay đổi, Magento sẽ kích hoạt các sự kiện. Có những người nghe những sự kiện này làm mất hiệu lực bộ nhớ cache có liên quan. Đối với lý do tại sao nó làm điều này (và tại sao nó không tự động làm mới) điều này cuối cùng là một quyết định thiết kế, nhưng có lẽ có một cái gì đó để làm với việc có thể giai đoạn nội dung. Ví dụ: bạn có thể thực hiện thay đổi đối với một số sản phẩm có liên quan đến nhau và sau đó có thể làm mới bộ nhớ cache. Tôi đã khắc phục điều này với một công việc cron chạy mỗi khi cron chạy trên máy chủ, và gọi một hàm để làm mới bộ nhớ cache tự động. Tôi sẽ chỉnh sửa câu trả lời ban đầu của mình để bao gồm mã. –
Giải pháp rất tồi: thiết lập một cron làm mới tất cả bộ nhớ cache, mọi lúc nó chạy, nó cũng giống như vô hiệu hóa bộ nhớ cache ... bạn nên kiểm tra xem bộ nhớ cache có bị vô hiệu hay không và đặt cron cứ sau 30 phút ... – WonderLand