अमान्य ब्लॉक प्रकार


9

मुझे दिन में कुछ बार निम्न त्रुटि संदेश मिल रहा है, और Magento CE 1.9.0.1 के आंतरिक कामकाज का मेरा ज्ञान इतना पतला है कि मुझे नहीं पता कि यह Magento का सामान्य, सलाहकार व्यवहार है, या यदि यह बता रहा है मुझे एक बुरी समस्या है।

यहाँ संदेश है:

कैश प्रकारों में से एक या अधिक अमान्य हैं: HTML आउटपुट ब्लॉक करता है। कैश प्रबंधन पर जाने और कैश प्रकारों को ताज़ा करने के लिए यहां क्लिक करें।

उस विशेष कैश को रीफ़्रेश करने से समस्या कुछ घंटों के लिए दूर हो जाती है।

मैं वर्तमान में लेआउट, उत्पादों आदि का संपादन नहीं कर रहा हूँ, कुछ भी नहीं।

क्या गलत है और मैं इसे कैसे सही कर सकता हूं?


मुझे यह हर दिन मिलता है जब मैं उठता हूं और Magento v1.9.2.2 पर साइन इन करता हूं - एक या अधिक कैश प्रकार अमान्य हैं: HTML आउटपुट ब्लॉक करता है। कैश प्रबंधन पर जाने और कैश प्रकारों को ताज़ा करने के लिए यहां क्लिक करें। जब तक मैं वास्तव में कुछ नहीं कर रहा था, तब तक मैं इसे पहले के संस्करणों पर प्राप्त नहीं करता था। क्या यह किसी प्रकार की बग है?
नील हार्ट

जवाबों:


6

पहले यह समझना महत्वपूर्ण है कि यह एक त्रुटि नहीं है, यह केवल एक अधिसूचना है।

वहाँ कारणों की असंख्य हो सकता है एक ब्लॉक कैश अद्यतन से उत्पादों, सूची मूल्य नियम परिवर्तन, और 3 पार्टी एक्सटेंशन के लिए अमान्य है। साथ ही क्रोनोजर के चलने से ब्लॉक कैश भी अमान्य हो सकता है।

कुछ सामुदायिक एक्सटेंशन उपलब्ध हैं (नीचे सूचीबद्ध हैं) जो अमान्य हो जाने पर आपके ब्लॉक को ताज़ा कर देंगे।

https://github.com/tomasinchoo/Inchoo_InvalidatedBlockCacheFix

https://github.com/mklooss/Loewenstark_InvalidCache


2

यह एक त्रुटि है।

एक CRON जॉब प्रॉब्लम है (पोस्ट 1.9।) जो HTML कैश को चलाता है और अमान्य करता है, जो समस्याएं पैदा करता है (जैसे कि मेरे मामले में, बास्केट पर मूल्य छूट को ले जाने में विफल रहा - इसलिए एक ग्राहक से गलत राशि ली जाएगी)।

जो समस्या पेश की गई है, उसे ठीक करने के लिए हमें कोई एक्सटेंशन चलाने की आवश्यकता नहीं है!


मुझे सीई 1.9.2.2 पर ठीक वैसा ही व्यवहार मिल रहा है, हर सुबह ब्लॉक एचटीएमएल आउटपुट को ताज़ा करने की आवश्यकता होती है, और एक नौकरी के मुद्दे के बारे में सोचा जाता है। @ ब्रायन क्या आप उस क्रोन कार्य पर अधिक जानकारी दे सकते हैं?
मार्क

मुझे लगता है कि आप हालांकि पीछे की ओर सोच रहे हैं: ऐसा नहीं था कि "कीमत टोकरी तक नहीं पहुंची थी," बल्कि यह कि पेज पर मूल्य ताज़ा होने से पहले कैश में जोड़ा गया था, और इसलिए कैश गलत था , जबकि सही मूल्य गाड़ी में दिखाया गया है। खरीदार के लिए, वे शायद सोचते हैं कि जो भी कीमत कम है वह "सही" है।
एरिक सस्टैंडैंड

@ ब्रायन, क्या आप अपने ब्लॉक को अमान्य करने वाले क्रोन कार्य पर अधिक जानकारी दे सकते हैं?
हैम

0

यह 1.6.xx और आगे से मानक Magento का संचालन है। कुछ हमेशा एक यादृच्छिक HTML ब्लॉक कैश अमान्यता का कारण बन रहा है।

मैं सिर्फ एक पर्यवेक्षक की स्थापना करता हूं जो समय-समय पर क्रोन की नौकरी से दूर हो जाता है, जो भी अंतराल उचित लगता है वह सेट करें।

Observer.php

<?php

/************************
 * Find invalidated cache types and refresh
 *
 * Set Cron Time for refresh in config.xml
 *
 */

class Fiasco_Rcache_Model_Observer {

    public function refreshCache() {

        try {

            $types = Mage::app()->getCacheInstance()->getInvalidatedTypes();

            foreach($types as $type) {

                Mage::app()->getCacheInstance()->cleanType($type->getId());

            }

            Mage::log('Invalid Cache Types Refreshed');

        } catch (Exception $e) {

            Mage::logException($e);

        }
    }
}

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Fiasco_Rcache>
            <version>0.5.0</version>
        </Fiasco_Rcache>
    </modules>
    <global>
        <models>
            <refresh_cache>
                <class>Fiasco_Rcache_Model</class>
            </refresh_cache>
        </models>
    </global>
    <crontab>
        <jobs>
            <refresh_cache>
                <!-- Min Hour Day Month DoW -->
                <schedule><cron_expr>0 */3 * * *</cron_expr></schedule>
                <run><model>refresh_cache/observer::refreshCache</model></run>
            </refresh_cache>
        </jobs>
    </crontab>
</config>

0

यह अमान्य कैश संकेतक संभवत: DailyCatalogUpdate cron से संबंधित है। यह कैटलॉग नियमों को लागू / ताज़ा करने के लिए जिम्मेदार है।

दिन में एक बार, यह कॉल करता है Mage::getSingleton('catalogrule/rule')->applyAll();

इस पद्धति के कोड के अंदर, एक कॉल है $this->_invalidateCache(), जो बदले $this->_app->getCacheInstance()->invalidateType()में block_htmlकैश पर कॉल करता है।

मुद्दा यह है कि यह कैश को बिना किसी जांच के अमान्य करता है यह निर्धारित करने के लिए कि क्या यह वास्तव में अभी भी मान्य हो सकता है। मेरे लिए, यह कैश को अमान्य नहीं करने से बेहतर है , क्योंकि तब आप कम से कम यह जान सकते हैं कि यह अमान्य हो सकता है, और कुछ का उपयोग करें जैसे कि Fiasco Labs ने अमान्य कैश किए गए डेटा को फ़्लश करने का सुझाव दिया है।

इसके बाद यह निर्णय हो जाता है कि क्या आप इसके पक्ष में त्रुटि करना चाहते हैं:

क) ग्राहकों को गलत मूल्य दिखाना, लेकिन कैश रखना और इस तरह से सर्वर लोड कम होना

या

बी) सही कीमत दिखा रहा है, लेकिन अधिक कैश की कमी है, और इसलिए उच्च सर्वर लोड।

कंप्यूटर विज्ञान में दो कठिन चीजें हैं: चीजों का नामकरण और कैश अमान्यकरण


0

यहां देखें समाधान: https://magento.stackexchange.com/a/72687

मूल रूप से एप्लिकेशन / कोड / स्थानीय / दाना / कैटलॉग नियम / मॉडल / Observer.php से दैनिक कैदखाना बदलें।

        $collection = Mage::getResourceModel('catalogrule/rule_collection')
        ->addFieldToFilter('is_active', array('neq' => 0));
    if ($collection->getSize() == 0) {
        return $this;
    }
    parent::dailyCatalogUpdate($observer);
    $types = Mage::getConfig()->getNode('global/catalogrule/related_cache_types')->asArray();
    foreach (array_keys($types) as $type) {
        Mage::app()->getCacheInstance()->cleanType($type);
    }
    return $this;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.