Yanıtlar:
Cron.sh dosyasını çalıştırmak en iyisidir
Magento EE 1.13.x ve CE 1.8.x'ten itibaren, cron mekaniği, Magento'nun yeni bir programlama modu işlevi tanıttığı yerde değişti.
Kullanılabilir 2 mod vardır: 1. varsayılan - zamanlanmış kronları çalıştırır. 2. Her zaman - Adında da belirtildiği gibi, bu görevler koşulsuz olarak cron her tetiklendiğinde gerçekleştirilecek ve açıkça tanımlanmış bir programlamaya gerek duyulmayacak.
Temel olarak herhangi bir parametre olmadan çağrılan cron.php, cron.sh'ın iki işlemini yürütmek için shell_exec öğesini kullanır. Her biri farklı bir parametreye sahip (“varsayılan” veya “her zaman”). Cron.sh bu parametreyi cron.php'ye geri döndürür ve cronu çalıştırır. Dahili olarak Magento, etkinlik altyapısını “varsayılan” ve “her zaman” adlarıyla olayları göndererek iki modu işlemek için kullanır. Mage_Cron daha sonra iki gözlemci yöntemi uygular.
Cron.php dosyasına baktığımızda, shell_exec PHP işlevinin kullanıldığını fark edeceksiniz. Güvenlik kaygısı olmasının yanı sıra, bir hata oluştuğunda veya program çıktı üretmediğinde işlev NULL değerini döndürür. Bu işlevi kullanarak yürütme hatalarını tespit etmek mümkün değildir. Bu, kodunuz / kodunuz bir hata nedeniyle başarısız olduğunda herhangi bir noktada aşağıdakilerin gerçekleştiği anlamına gelir: 1. Cronjob eskimiş olur, 2. Hata kaydedilmez, 3. ve hiç kimse bunun meydana geldiğini bilmiyor.
Bunun üstesinden gelmek için aşağıdaki cronjob'ın eklenmesi gerekir:
*/5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=default
*/5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=always
Bu, işlem modlarının her zaman geri dönüş PHP işlevini kullanmadan çalışmasını sağlayacaktır shell_exec ve bir hata meydana gelirse, bir istisna atıldığında cron'un bayatlanmaması gerekir.
*/5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=default */5 * * * * www-data /bin/sh /path/to/magento/cron.sh cron.php -m=always
ve bu komutlar nupur walia tarafından "komut bulunamadı" hatası veriyor
*/5 * * * * /bin/sh /path/to/magento/cron.sh cron.php -m=default
www-data
kullanıcının web sunucusu işlemlerini gerçekleştirdiği her şeye göre değişir. Ayrıca birçok CPanel / WHM barındırma kurulumushell_exec()
için devre dışı bırakılacağına dikkat çekiyor .