मैंने लगभग 3 दिन बिताए और निर्धारित कार्यों को संसाधित करने के लिए मैगेंटो क्रोन को समझने और बनाने में सक्षम था। मैं Magento 1.9.1.0 चला रहा हूं और हाल ही में देखा गया कि ऑर्डर ईमेल अब तुरंत भेजने के बजाय कतार में हैं। मैं आवश्यकता को समझता हूं लेकिन कतारों को चुनने के लिए प्रणाली बनाने में सक्षम नहीं हो सकता।
यहाँ क्रोनजोब के लिए मेरा दर्शन है।
यहाँ मेरी क्रोनजॉब कमांड लाइन है।
यहां बताया गया है कि कार्य क्रोन_स्क्रूइड टेबल में कैसे बनाए जाते हैं।
चूंकि रिकॉर्ड cron_schedule तालिका में बनाए गए हैं, मुझे लगता है कि क्रोन हर 5 मिनट में एक बार चल रहा है। अगर मैं मैन्युअल रूप से PhpMyAdmin के माध्यम से इन रिकॉर्ड को हटाता हूं, तो रिकॉर्ड कुछ समय बाद अपने आप बन जाते हैं।
लेकिन कार्यों की स्थिति 'लंबित' रहती है और कभी पूरी नहीं होती है। सुनिश्चित नहीं है कि मेरे कॉन्फ़िगरेशन में कुछ गलत है या मुझे कुछ याद आ रहा है। क्या कोई मेरी मदद कर सकता है कि निर्धारित कार्य को समय पर कैसे पूरा किया जाए। इसके अलावा एक नौकरी कोड के लिए कई रिकॉर्ड क्यों बनाए जाते हैं?
अपडेट करें
मैंने पूरी तालिका साफ कर दी और क्रोन ने अनुसूचित नौकरियां पैदा कीं। सभी नौकरियां लंबित स्थिति में हैं और कभी भी 60 मिनट से अधिक इंतजार नहीं करना चाहिए। Magento 1.9.1 में कुछ गलत है
अपडेट 11/02: आज मैंने प्रक्रिया पर कुछ और विश्लेषण किया।
मैंने नीचे के रूप में cron.php का संपादन किया
echo 'iam before mdefault 1';
shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &");
echo 'iam before malways 1';
shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &");
echo 'i returned success';
मैंने Mage_Cron_Model_Observer वर्ग को नीचे के रूप में संपादित किया है
public function dispatch($observer) {
echo 'iam inside dispath';
मेरी समझ यह थी कि क्रोन जब चलता है -मॉडफॉल्ट होता है तो इसे डिस्पैच फ़ंक्शन को कॉल करना चाहिए और निष्पादन होगा। लेकिन जो हुआ वह क्रोन आउटपुट में नीचे था।
Content-type: text/html
iam before mdefault 1iam before malways 1i returned success
इसका मतलब यह है कि प्रेषण अटल नहीं कहा जाता है ...
एक और कोशिश
मैंने मैन्युअल रूप से चर को बदल दिया है $isShellDisabled = true;
और मैंने नीचे cron.php को बदल दिया है।
if ($isShellDisabled) {
echo 'before always';
Mage::dispatchEvent('always');
echo 'after always';
Mage::dispatchEvent('default');
echo 'after default';
} else {
Mage::dispatchEvent($cronMode);
}
उपरोक्त के लिए क्रोन आउटपुट नीचे के रूप में है
Content-type: text/html
before alwaysiam inside dispath alwaysafter always
अब इसे 'प्रेषण' कहते हैं, लेकिन 'प्रेषण' नहीं
कोई भी उत्तर मेरी मदद नहीं करता है। यह निर्धारित कार्यों को कभी नहीं करता है। Ie जब क्रोन पहली बार चलता है तो यह सफलतापूर्वक तालिका में कार्यों का निर्माण करता है। लेकिन यह कभी भी कार्य को अंजाम नहीं देता है।
*/5 * * * * /bin/sh PATH_TO_PRODUCTION/cron.sh
यदि उपलब्ध हो।
cron_schedule
टेबल खाली करने की कोशिश की ? अगर यह लगभग एक घंटे के बाद नए कार्य के साथ भर के मिल की जाँच करें