Uyku () veya cron işi kullanmak için

4 Cevap php

I have this mail script I have to run a few times. To start the script I will use cron, but the script has to run 2 or 3 more times (with an hour apart).

What's the best way to do this? To use the sleep command for an hour, or at the end of the script, place some code, so that the script will create a new cron job to run it self after an hour?

Teşekkürler

4 Cevap

Bazı maliyet tasarrufu bellekte çalışan komut dosyası tutmak olmadıkça, gerektiği gibi, bunu her saat başı çağırmak için cron kullanarak daha iyidir.

0 0-2 * * * /usr/local/bin/mail-script.php

Sen kullanarak birden fazla saati de seçebilirsiniz - sözdizimi, ya da virgül sözdizimi:

0 0,1,2,3 * * * /usr/local/bin/mail-script.php

Bu devletin bazı formunu korumak için gerekiyorsa, kaydedilmiş devlet tutmak için geçici bir dosya kullanın.

Yapın:

> man 5 crontab

* Nix Yukarıdaki durumlarda kolları olmadığını görmek için.

Son olarak, bildiğiniz sürece komut dosyası daha sonra "çalıştırmak veya çalıştırmak için" PHP script kendisi, ve edip sadece koşmak hakkında mantığını koyarak daha iyiyiz, only 2-3 kez çalıştırmak zorunda Her saat.

Uyku () kullanmanın bir avantajı, daha taşınabilir olabilir olmasıdır. Örneğin, ben çalışmak birçok sistemlerinde, kullanıcıların kendi cron işleri için izin verilmez - yani kendi zamanlayıcı-lik dikkat çekmek için program yazma bir avantaj olabilir.

() SIGALRM kullanıyor olabilirsiniz uyumak için alternatif (böylece komut bir kesme yakalar ve belli aralıklarla kodu çalıştırır -. Olduğu kesme atıldığında)

Yani, cron kullanarak tavsiye ediyorum - ama burada bazı alternatifler vardır!

Ben yaklaşım (bir saat uyku, ya da php cron iş yaratma) da emin değilim ideal, zaten her saat çalışan bir cron işi hakkında, o zaman php script kontrolleri nasıl çalışmalıdır olsun?

Bu o belirli zamanlarda patlar yani neden sadece cron kriterlerini belirlemek değil? Cron bu açıdan oldukça esnektir.

Eğer kapalı yangın istiyorum ve ben bir örnek verebilirim zaman ile sorunuzu güncelleyin.