मैजेंटो क्रोन नौकरियां किस समय में चल रही हैं?


11

मेरे सिस्टम का समयक्षेत्र US / Eastern है , मेरा डिफ़ॉल्ट स्टोर US / Central है और डेटाबेस UTC है । निम्नलिखित doStuffविधि को किस समय कहा जाएगा?

<mymodule_do_stuff>
    <schedule><cron_expr>15 0 * * *</cron_expr></schedule>
    <run>
        <model>mymodule/observer::doStuff</model>
    </run>
</mymodule_do_stuff>

अपडेट: मैंने इस स्क्रिप्ट को चलाया।

echo date('r'), PHP_EOL;
require_once 'app/Mage.php';
Mage::app();

echo date('r'), PHP_EOL;

और मिला

Mon, 30 Dec 2013 18:01:33 -0600
Tue, 31 Dec 2013 00:01:34 +0000

तो ऐसा लग रहा है कि UTC का उपयोग करना चाहिए।


डेटाबेस में UTC के रूप में संग्रहीत दिनांक / समय के साथ आपके समयक्षेत्र के लिए आपकी कॉन्फ़िगरेशन सेटिंग।
फियास्को लैब्स

जवाबों:


9

उपयोग किया जाने वाला डिफ़ॉल्ट समय लिनक्स का सिस्टम समय होगा। dateकमांड लाइन पर फ़ंक्शन का उपयोग यह जानने के लिए करें कि यह किस पर सेट है।

मैगेंटो 'ओवरराइट' करता है कि localeदुकान की स्थापना के दौरान आपने जो कुछ भी निर्दिष्ट किया है, उसे सेट करके । यह System > Configuration > Generalप्रति दुकान या डिफ़ॉल्ट दायरे में निर्दिष्ट है ।


मुझे नहीं लगता कि यह सही है। Magento कॉल date_default_timezone_set('UTC')में Mage::isInstalled()जो cron.php में कहा जाता है। localeडिफ़ॉल्ट स्टोर पर सेट कहां है ?
nachito

3
डिफ़ॉल्ट रूप से यह UTC है, लेकिन जहाँ तक मुझे पता है, जब एक दुकान को शुरू करने पर भी डिफ़ॉल्ट गुंजाइश होती है, तो sys / config में सेट किए गए लोकेल का उपयोग करता है। कृपया मुझे सही करें अगर मैं गलत हूं, लेकिन यहां तक ​​कि गुंजाइश गुंजाइश 0 परिभाषित स्थान सेटिंग्स का उपयोग करता है
सैंडर मैंगेल

हाँ, यह M2 के लिए सही है - यदि आप module-cron/Model/Schedule.phpविशेष रूप से trySchedule()विधि के तहत देखते हैं, तो आप देखेंगे कि कॉन्फ़िगरेशन में UTC से टाइमज़ोन सेट में रूपांतरण कहाँ होता है (टिप्पणी बताते हुए we assume that all schedules in configuration (crontab.xml and DB tables) are in admin store timezone)
फिल बिरनी

3

cron_scheduleतालिका में संग्रहीत टाइम्स UTC में हैं, लेकिन मैगेंटो इसे आपके स्टोर के कॉन्फ़िगर किए गए टाइमज़ोन ( general/locale/timezone) में परिवर्तित करता है, जब जांच करनी चाहिए कि क्या नौकरी चलनी चाहिए।

मैं Aoe_Scheduler को स्थापित करने की सलाह देता हूं ताकि आपके स्टोर के क्रॉन जॉब्स के चलने का एक बेहतर विचार प्राप्त हो सके।


1

फ़ंक्शन में कोड को देखते हुए:

Mage_Cron_Model_Observer::_generateJobs

निर्धारित समय PHP फ़ंक्शन समय () पर आधारित है, यह PHP के लिए कॉन्फ़िगर किए गए टाइमज़ोन का उपयोग करता है (आपके विशिष्ट कॉन्फ़िगरेशन पर निर्भर करता है) मैं कहूंगा कि यह सिस्टम टाइमज़ोन (यूएस / पूर्वी) की तरह ही कॉन्फ़िगर किया गया है।

मुझे ऐसी जगह नहीं मिली जहां इस्तेमाल किए गए टाइमज़ोन ऑफसेट के लिए गणना हो।


मुझे नहीं लगता कि यह सही है। मेरा अपडेट देखें
nachito

0

फ़ाइल खोलें Mage_Cron_Model_Observerऔर
$now = time();लाइन के बाद या उससे पहले Mage :: log () डालें

public function dispatch($observer)
    {
        $schedules = $this->getPendingSchedules();
        $scheduleLifetime = Mage::getStoreConfig(self::XML_PATH_SCHEDULE_LIFETIME) * 60;
        $now = time();
        Mage::log("cron timezone: " . date_default_timezone_get(), Zend_Log::DEBUG); // this will log the cron timezone into var/log/system.log file
        $jobsRoot = Mage::getConfig()->getNode('crontab/jobs');
        $defaultJobsRoot = Mage::getConfig()->getNode('default/crontab/jobs');
 . . . . .
}

फिर यदि आप जांचते हैं कि आप var/log/system.logठीक से जान सकते हैं कि मैगेंटो ने किस समय क्षेत्र का उपयोग किया है।


और फिर CTC लॉग टेबल या कहीं और संग्रहीत किसी भी दिनांक को परिवर्तित करने के लिए UTC ऑफ़सेट जोड़ें / घटाएँ।
फिस्को लैब्स

0

वे डेटाबेस में UTC के रूप में संग्रहीत दिनांक / समय के साथ आपके टाइमज़ोन के लिए Magento में आपके लोकेल कॉन्फिगरेशन सेटिंग को ट्रिगर करते हैं।

मैगेंटो जिस सिस्टम टाइमज़ोन पर चल रहा है, वह मैगेंटो की कॉन्फिग सेटिंग से अलग हो सकता है।

यह सब अवलोकन से होता है। मेरा सर्वर एमएसटी चलाता है, मैगेंटो पीएसटी है जिसका अर्थ है कि वर्ष के कुछ हिस्सों के लिए, बाहरी क्रोन नौकरियों को डीएसटी का अवलोकन करने वाले उनमें से एक के कारण मैगेंटो के क्रॉन नौकरियों से 1 घंटे का समय लगता है।

यदि आप पुष्टि चाहते हैं, तो एओई शेड्यूलर मॉड्यूल स्थापित करें और आप इसे माउसओवर से पढ़ सकते हैं। वर्तमान में AOE 16:30 PST दिखा रहा है जो कि 4:30 PM PST है।

Runtime: 2013-12-30   Server: 17:44:59 MST   Store: 16:44:59   Zulu: 00:44:59 UTC
Note: All logged times are UTC, your server timezone offset is -07:00 hours from UTC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.