অবৈধ ব্লক প্রকার


9

আমি দিনে কয়েকবার নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি, এবং ম্যাগেন্টো সিইয়ের অভ্যন্তরীণ কাজ সম্পর্কে আমার জ্ঞান 1.9.0.1 এ যথেষ্ট পাতলা যে আমি জানি না এটি স্বাভাবিক, ম্যাগেন্টোর কাছ থেকে পরামর্শমূলক আচরণ, বা যদি তা বলছে আমার একটা খারাপ সমস্যা আছে

বার্তাটি এখানে:

এক বা একাধিক ক্যাশে প্রকারের অবৈধ: ব্লক এইচটিএমএল আউটপুট। ক্যাশে ম্যানেজমেন্টে যেতে এবং ক্যাশের ধরণগুলি রিফ্রেশ করতে এখানে ক্লিক করুন।

সেই নির্দিষ্ট ক্যাশে রিফ্রেশ করার ফলে সমস্যা কয়েক ঘন্টা বা তার জন্য দূরে চলে যায়।

আমি বর্তমানে লেআউট, পণ্য ইত্যাদি সম্পাদনা করছি না nothing

কী ভুল এবং আমি কীভাবে এটি সংশোধন করতে পারি?


আমি জেগে উঠি এবং ম্যাজেন্টো v1.9.2.2 এ সাইন ইন করে আমি প্রতিদিন এটি পাই - এক বা একাধিক ক্যাশে প্রকারভেদ অবৈধ: ব্লক এইচটিএমএল আউটপুট। ক্যাশে ম্যানেজমেন্টে যেতে এবং ক্যাশের ধরণগুলি রিফ্রেশ করতে এখানে ক্লিক করুন। আমি পূর্ববর্তী সংস্করণগুলিতে কখনই ব্যবহার করতাম না যদি না আমি আসলে কিছু না করতাম। এটি কি কোনও ধরণের বাগ?
নিল হার্ট

উত্তর:


6

প্রথমে এটি বোঝা গুরুত্বপূর্ণ যে এটি ত্রুটি নয়, এটি কেবল একটি বিজ্ঞপ্তি।

ব্লক ক্যাশে পণ্যের আপডেট থেকে ক্যাটালগের মূল্য নিয়মের পরিবর্তন এবং তৃতীয় পক্ষের এক্সটেনশানগুলি থেকে অবৈধ কারণগুলির অবিচ্ছিন্ন কারণ থাকতে পারে। এছাড়াও ক্রোনজবস চালনার ফলে ব্লক ক্যাচগুলিও অবৈধ হয়ে যেতে পারে।

কিছু সম্প্রদায় সম্প্রসারণ উপলব্ধ (নীচে তালিকাভুক্ত) যা অবরুদ্ধ হওয়ার সাথে সাথে আপনার ব্লককে রিফ্রেশ করবে।

https://github.com/tomasinchoo/Inchoo_InvalidatedBlockCacheFix

https://github.com/mklooss/Loewenstark_InvalidCache


2

এটি একটি ত্রুটি।

এখানে একটি CRON কাজের সমস্যা রয়েছে (১.৯।? পোস্ট) যা এইচটিএমএল ক্যাশে চালায় এবং অবৈধ করে দেয় যা সমস্যা উত্পন্ন করে (যেমন আমার ক্ষেত্রে, ঝুড়িতে দাম ছাড় ছাড়িয়ে ব্যর্থ হয়েছে - তাই কোনও গ্রাহককে ভুল পরিমাণে চার্জ করা হবে)।

যে সমস্যাটি চালু হয়েছে তা ঠিক করার জন্য আমাদের কোনও এক্সটেনশন চালানোর দরকার নেই!


আমি সিই ১.৯.২.২. এ ঠিক একই আচরণ পাচ্ছি, প্রতি সকালে ব্লক এইচটিএমএল আউটপুটকে রিফ্রেশ করা দরকার এবং ক্রোন জব ইস্যু নিয়ে চিন্তা করা উচিত। @ ব্রায়ান আপনি কি সেই ক্রোন কার্য সম্পর্কে আরও বিশদ দিতে পারবেন?
মার্চ

আমি মনে করি আপনি যদিও পিছনের দিকে চিন্তা করছেন: এটি "দাম ঝুড়ির উপরে রাখেনি" তা নয়, বরং পৃষ্ঠার দামটি রিফ্রেশটি চালানোর আগে ক্যাশে যুক্ত করা হয়েছিল এবং তাই ক্যাশেটি ভুল ছিল কার্টে সঠিক মূল্য প্রদর্শিত হচ্ছে। যদিও ক্রেতার কাছে তারা সম্ভবত মনে করে যে দাম যে কোনওটিই কম হ'ল "সঠিক"।
এরিক সিস্ট্র্যান্ড

@ ব্রায়ান, আপনি কি ক্রোন টাস্ক সম্পর্কে আরও বিশদ জানাতে পারেন যা আপনার ব্লকগুলি অবৈধ করেছে?
হাইম

0

এটি 1.6.xx থেকে ফরোয়ার্ড স্ট্যান্ডার্ড ম্যাজেন্টো অপারেশন। কিছু কিছু সর্বদা এলোমেলো এইচটিএমএল ব্লক ক্যাশে অবৈধকরণ ঘটায়।

আমি কেবলমাত্র একটি পর্যবেক্ষক সেট আপ করেছি যা পর্যায়ক্রমিক ক্রোন জব থেকে আগুন জ্বলে ওঠে, যা অন্তর যথাযথ বলে মনে হয় সেট করে।

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

এই অবৈধ ক্যাশে সূচকটি সম্ভবত দৈনিক ক্যাটালগ আপডেট ক্রোন সম্পর্কিত। এটি ক্যাটালগ বিধি প্রয়োগ / রিফ্রেশ করার জন্য দায়ী।

দিনে একবার, এটি কল Mage::getSingleton('catalogrule/rule')->applyAll();

এই পদ্ধতির কোডের অভ্যন্তরে, এখানে একটি কল রয়েছে $this->_invalidateCache()যা ঘুরেফিরে ক্যাশে কল $this->_app->getCacheInstance()->invalidateType()করে block_html

সমস্যাটি হ'ল এটি প্রকৃতপক্ষে বৈধ হতে পারে কিনা তা নির্ধারণ করতে কোনও চেক না করেই ক্যাশেটিকে অবৈধ করে তোলে। আমার কাছে এটি ক্যাশেটিকে অবৈধ না করার চেয়ে ভাল , কারণ তাহলে আপনি কমপক্ষে জানতে পারবেন যে এটি অবৈধ হতে পারে, এবং ফায়াসকো ল্যাবগুলি (সম্ভাব্য) অবৈধ ক্যাশেড ডেটা ফ্লাশ করার পরামর্শ দিয়েছিল এমন কিছু ব্যবহার করুন।

এরপরে এটি সিদ্ধান্তে পরিণত হয় যে আপনি পাশ দিয়ে ত্রুটি করতে চান:

ক) গ্রাহকদের ভুল দাম দেখাচ্ছে, তবে ক্যাশে রাখা, এবং এর ফলে সার্ভারের লোড কম

অথবা

খ) সঠিক দাম দেখাচ্ছে, তবে বেশি ক্যাশে মিস হচ্ছে, এবং তাই সার্ভারের বেশি লোড।

কম্পিউটার বিজ্ঞানে দুটি শক্ত জিনিস রয়েছে: জিনিসগুলির নামকরণ এবং ক্যাশে অবৈধকরণ


0

সমাধানটি এখানে দেখুন: https://magento.stackexchange.com/a/72687

মূলত অ্যাপ্লিকেশন / কোড / লোকাল / ম্যাজ / ক্যাটালগের বিধি / মডেল / অবজারভার.এফপি থেকে দৈনিক ক্যাটালগ আপডেট করুন

        $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;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.