Saya menghabiskan hampir 3 hari dan tidak dapat memahami dan membuat Magento Cron untuk memproses tugas yang dijadwalkan. Saya menjalankan Magento 1.9.1.0 dan baru-baru ini memperhatikan bahwa email pesanan sekarang diantrikan alih-alih dikirim secara instan. Saya mengerti keharusan tapi tidak bisa membuat sistem untuk memilih antrian.
Inilah yang saya lihat untuk Cronjob.
Ini adalah baris perintah cronjob saya.
Ini adalah bagaimana tugas-tugas dibuat di tabel cron_schedule.
Karena catatan dibuat di tabel cron_schedule saya pikir Cron berjalan setiap 5 menit sekali. Jika saya secara manual menghapus catatan ini melalui PhpMyAdmin catatan dibuat secara otomatis setelah beberapa waktu.
Tetapi status tugas tetap 'tertunda' dan tidak pernah selesai. Tidak yakin apakah ada sesuatu yang salah dalam konfigurasi saya atau saya kehilangan sesuatu. Dapatkah seseorang tolong bantu saya bagaimana membuat tugas yang dijadwalkan berjalan tepat waktu. Juga mengapa banyak catatan dibuat untuk satu kode pekerjaan?
Memperbarui
Saya membersihkan seluruh meja dan cron menciptakan pekerjaan yang dijadwalkan. Semua pekerjaan dalam status tertunda dan tidak pernah berjalan bahkan menunggu lebih dari 60 menit. Ada yang salah di Magento 1.9.1
Pembaruan 11/02: Hari ini saya melakukan beberapa analisis pada prosesnya.
Saya mengedit cron.php seperti di bawah ini
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';
Saya mengedit kelas Mage_Cron_Model_Observer seperti di bawah ini
public function dispatch($observer) {
echo 'iam inside dispath';
Pemahaman saya adalah ketika cron menjalankan -mdefault itu harus memanggil fungsi pengiriman dan eksekusi akan terjadi. Tetapi apa yang terjadi adalah seperti di bawah dalam cron output.
Content-type: text/html
iam before mdefault 1iam before malways 1i returned success
Ini berarti pengiriman itu tidak disebut ...
Satu sama lain mencoba
Saya secara manual mengubah variabel $isShellDisabled = true;
dan saya mengubah di bawah ini di cron.php.
if ($isShellDisabled) {
echo 'before always';
Mage::dispatchEvent('always');
echo 'after always';
Mage::dispatchEvent('default');
echo 'after default';
} else {
Mage::dispatchEvent($cronMode);
}
Output cron untuk di atas adalah seperti di bawah ini
Content-type: text/html
before alwaysiam inside dispath alwaysafter always
Sekarang ia memanggil 'dispatchAlways' tetapi bukan 'dispatch'
Tidak ada jawaban yang membantu saya. Tidak pernah memilih tugas yang dijadwalkan. Yaitu ketika Cron berjalan untuk pertama kalinya berhasil membuat tugas dalam tabel. Tapi itu tidak pernah menjalankan tugas.
*/5 * * * * /bin/sh PATH_TO_PRODUCTION/cron.sh
jika tersedia.
cron_schedule
meja? Periksa apakah sudah diisi dengan tugas-tugas baru setelah satu jam atau lebih