Zona Waktu Pekerjaan Magento Cron Tab

Saya mencoba mencari tahu apakah modul cron saya berjalan pada waktu yang tepat.

Cron untuk modul saya disetel pada jam 1 pagi (0 1 * * *), zona waktu penyimpanan default adalah Eropa Barat (Paris, Berlin dll GMT +2), waktu server adalah EDT (Waktu Musim Panas Bagian Timur).

Jadi berdasarkan zona waktu manakah jadwal jam 1 pagi?

Terima kasih,


person Jono    schedule 28.09.2011    source sumber
comment
@Fiasco Labs memiliki jawaban yang benar di sini. Data yang Anda miliki dalam file XML digunakan untuk penjadwalan dan berada di TZ default yang telah Anda konfigurasikan untuk toko Anda. Semua pengiriman dan penyimpanan pekerjaan terjadwal di DB berada di bawah UTC.   -  person Lee Saferite    schedule 30.09.2011


Jawaban (2)


Proses cron Magento berjalan di bawah zona waktu UTC.

Hal ini dapat diverifikasi dengan menambahkan sementara pernyataan log kecil ke pengamat cron.

Caranya adalah:

Mage_Cron_Model_Observer::dispatch()

Cari kode ini di beberapa baris pertama:

$now = time();

Baik sebelum atau sesudahnya, tambahkan ini:

Mage::log("cron timezone: " . date_default_timezone_get(), Zend_Log::DEBUG);

Kemudian periksa file var/log/system.log Anda dan Anda akan melihat bahwa PHP/Magento menggunakan zona waktu UTC.

person Lee Saferite    schedule 28.09.2011
comment
Seperti yang ditunjukkan oleh @Fiasco Labs, INPUT penjadwalan diperlakukan sebagai nilai TZ yang dikonfigurasi secara default, bukan UTC. Jadi, meskipun semuanya dijadwalkan dan dikirim sebagai UTC, data masukan diperlakukan dengan kemungkinan offset TZ. - person Lee Saferite; 30.09.2011
comment
Terima kasih banyak teman-teman atas pengetahuan Anda! Jadi, menurut pemahaman saya, waktu cron jam 1 pagi saya akan menjadi jam 1 pagi berdasarkan waktu penyimpanan? Inilah yang saya inginkan! - person Jono; 30.09.2011
comment
Sehubungan dengan Mag::log, apakah tebakan saya benar bahwa stempel waktu log selalu GMT? Waktunya 2 jam lebih lambat dari waktu cron yang dijadwalkan, jadi ini masuk akal. - person Jono; 30.09.2011

Waktu log tugas cron Magento dicatat dalam UTC. Waktu pengoperasian sebenarnya didasarkan pada offset TZ (waktu server). Berikut adalah skrip Cron Job Monitor yang menunjukkan kepada Anda pekerjaan sesuai jadwal dan waktu penyelesaiannya. Ini juga memberi Anda UTC, waktu server dan waktu penyimpanan Anda (toko tunggal). Ketiganya bisa berbeda. Pemantau Tugas Cron

Agar berguna, saya mengatur System Config untuk menyimpan kesalahan dan mencatat informasi selama 24 jam. Dengan cara itu Anda benar-benar dapat memantau pekerjaan-pekerjaan besar yang berjalan di awal pagi dan memastikan bahwa pekerjaan-pekerjaan tersebut benar-benar berjalan.

person Fiasco Labs    schedule 29.09.2011
comment
catalog_product_index_price_reindex_all sukses 29-09-2011 08:45:05 29-09-2011 09:00:00 29-09-2011 09:00:05 29-09-2011 09:00:13 Tidak sesuai dengan waktu log yang diamati. Ini diatur untuk berjalan pada pukul 02:00 setiap pagi yang memeriksa waktu. Ini entri cronnya Catalog catalog/product_indexer_price:: reindexAll 0 2 * * * Perhatikan bahwa ini dicatat berjalan pada jam 9:00. Ini di 1.4.1.1, jadi tidak yakin apa yang terjadi dengan 1.5.1.x - person Fiasco Labs; 30.09.2011
comment
Segalanya mungkin terjadi dalam UTC, namun dialihkan ke zona waktu lokal untuk Waktu Proses sebenarnya. Jika tidak, Anda akan menjalankan beberapa proses yang sangat besar dan kuat selama jam sibuk toko Anda. Saya memperluas monitor cron ini setelah seseorang memberi tahu saya bahwa Magento menjadwalkan dan RAN semuanya dengan UTC. Bagaimana jika dibandingkan dengan apa yang Anda katakan? - person Fiasco Labs; 30.09.2011
comment
Setelah melihat lebih dalam kode penjadwalan saya menemukan bagian yang memang menggunakan zona waktu default yang dikonfigurasi untuk instalasi. Kesalahan saya adalah mengabaikan panggilan ke Mage::getSingleton('core/date')-›timestamp($time) - person Lee Saferite; 30.09.2011
comment
Terima kasih telah mengonfirmasi hal itu, Lee. Hal ini menjadi sumber frustrasi sekitar enam bulan yang lalu saat mencoba mencari tahu kapan tepatnya segala sesuatunya berjalan (sengsara yang biasa terjadi karena menjalankan tugas cron) dan tidak ada dokumentasi untuk digunakan kembali. :^) Saya benar-benar duduk pada suatu malam untuk menyaksikan pekerjaan besar mulai dimulai pada pukul 2:00 pagi. Bukan satu-satunya penyebab Magento larut malam! Setiap penggalian dan penjelasan membantu. - person Fiasco Labs; 30.09.2011
comment
Nah, untuk referensi di masa mendatang, metode yang melakukan 'keajaiban' adalah: Mage_Cron_Model_Schedule::trySchedule() dan 'keajaiban' terlihat seperti ini: $d = getdate(Mage::getSingleton('core/date')-›timestamp ($waktu)); - person Lee Saferite; 30.09.2011